2010-09-12 104 views
1

对不起,但我发现没有明确的答案。 我有一个iphone应用程序与每个选项卡中的标签栏和UINavigationController。 界面使用Interface Builder构建,第一个选项卡中有一个UITableView。 我准备了包含一个表(T)和一个图像(IMG)背景的主视图(A)的xib(图像作为主视图的子视图)。 后来我分配了UITableViewController作为所有者。这是问题开始的地方。 在IB中,如果我将视图连接到A我有一个运行时错误告诉我,控制器无法找到表。 如果我将控制器视图连接到T,一切正常,但IMG未显示。带固定图像背景的UITableView

我发现的唯一解决方案是创建一个新的xib,将UIViewController作为拥有者来持有A和IMG。然后创建一个厦门国际银行控股只有T和的UITableViewController作为所有者,正确连接到T. 然后在的UIViewController viewDidLoad中:

iptc = [[IPPlantsTableViewController alloc] initWithNibName:@"IPPlantsView" bundle:[NSBundle mainBundle]]; 

iptc.navigator=self.navigationController; // <-- need this 

[self.view addSubview:iptc.view]; 

而这个工作,除了表视图,似乎不知道什么navigationController因此细节视图机制不工作,除非我在UITableViewController中为它设置一个属性。 我也遇到了一些其他问题,例如所有添加/删除/创建行的逻辑都必须在UIViewController中处理并发送到UITableViewController。

在表格视图中有固定图像还有其他方法吗?

回答

1

的UITableViewController是一个方便的类;你可以同样使用UIViewController并实现正确的回调。

在OS 3.2+中,您可以设置UITableView.backgroundView。如果IB不让你这样做,你可以用代码来代替。

或者,您可能会以不同的方式连接viewtableView插座,除非tableView只是(UITableView*)self.view

+0

谢谢...我已成功地设法将UITableViewController转换为普通的UIViewController,神奇地出现背景。然而,我有一个最后恼人的问题,我用IB制作的顶部和底部单元格只在圆角下面显示黑色背景(如没有透明度的.gif)。如果我为UITableView声明颜色而不是clearColor,则问题消失,但我当然无法看到背景。 – Leonardo 2010-09-12 18:41:04

+0

设置UITableView.backgroundView是否工作? – 2010-09-13 00:35:11

+0

我必须为backgroundView设置什么?清除表格视图的颜色不够吗? – Leonardo 2010-09-13 10:15:21

2

我会说实话,我恨Interface Builder中;-)所以我不能帮你这一点。

但在一个UITableView你应该的背景设定一个固定的形象: - 设置的UITableView的背景色[的UIColor clearColor(也许电池太的背景) - 集和的UIImageView的UITableView的下方查看包含图像:)

这样应该可以工作。

但是,如果没有Xcode项目我也帮不了你更多的^^

好运

+0

+1接口生成器是魔鬼 – 2010-09-12 13:50:34

+0

YEAH!全部针对IB xD我完全同意 – Vinzius 2010-09-12 14:33:49

+1

尽管有必要并且更快地以编程方式创建视图,但我宁愿使用IB创建模板。有很多元素定位,图形,ecc控制... – Leonardo 2010-09-12 22:23:49