【发布时间】:2013-01-20 21:41:26
【问题描述】:
我似乎无法使用 Storyboard 向 UITableView 添加标题。我有一个 UITableView ,其中有一些原型单元格正在显示并且工作正常。然后,我在这些原型单元格上方拖动了一个新的 UIView 并向其添加了一个标签以充当我的表格的标题(而不是作为部分标题)。我创建了一个新的 UIView 子类,它只有一个属性,即 UILabel。 storyboard中UIView的class设置为这个自定义UIView,UILabel的引用outlet设置为我自定义UIView类的UILabel属性。
然后,在我的 UITableViewController 的 viewDidLoad 方法中,我正在执行以下操作:
DetailTableHeaderView *headerView = [[DetailTableHeaderView alloc] init];
headerView.entryNameLabel.text = @"TEST";
self.tableView.tableHeaderView = headerView;
[self.tableView reloadData];
但是当我运行我的应用程序时,表格标题根本没有出现。我还注意到 headerView.entryNameLabel 的 text 属性甚至没有设置为应有的“TEST”。
我在这里做错了什么?
【问题讨论】:
-
情节提要如何知道要为 tableview 标题加载什么?您只是在初始化视图控制器,但没有与之配套的视图!
-
不知道你到底是什么意思。在情节提要中,我添加了一个带有 UILabel 的 UIView 作为表头。然后,我创建了一个名为“DetailTableHeaderView”的自定义 UIView 子类,其中包含一个名为“entryNameLabel”的 UILabel 属性。在情节提要中,我将标题视图的类设置为“DetailTableHeaderView”,并链接了 UILabel 引用出口到 UILabel 'entryNameLabel'。这还不够吗?
-
情节提要如何知道要加载什么视图?您没有告诉它执行任何 segues,从您的评论来看,我敢打赌有问题的
view没有任何链接,它只是出现在情节提要中。尝试:[self.storyboard instantiateViewControllerWithIdentifier:@"DetailTableHeaderView"];设置您的UITableViewHeader。确保DetailTableHeaderView是UIViewController。 -
但是标题视图不能是视图控制器。已经有一个 UITableViewController 并且您不能将第二个视图控制器添加到同一个窗口。故事板知道要加载什么,因为我已经在原型单元格上方拖动了一个新的 UIView,并且我已经将这个新的 UIView 的类属性设置为我以编程方式创建的 UIView 子类。这就是它通常的做法,它适用于其他一切。出于某种原因,这不适用于表格标题...
-
您在设置标题视图时使用视图控制器
view属性。只需保留对视图控制器的引用,就可以了。原型单元格不同,因为它们是UITableView的属性,而不是情节提要。
标签: iphone uitableview header