iOS - 在用作 UITableView 标头的 ViewController 上设置网点

Posted

技术标签:

【中文标题】iOS - 在用作 UITableView 标头的 ViewController 上设置网点【英文标题】:iOS - setting outlets on a ViewController being used as a UITableView header 【发布时间】:2010-10-28 21:07:39 【问题描述】:

我正在为我的表格视图使用自定义标题...

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

   CustomHeaderController *header = [[CustomHeaderController alloc]
    initWithNibName:@"TableHeader" bundle:nil];

  header.title.text = @"Test";

  return header.view;

标题标签从未设置过。我什至尝试创建一个 viewWillAppear 方法并将其设置在那里,但这不起作用。我的网点也设置好了!

谢谢!

解决方案:返回 header.view 调用时未加载视图。调用 header.view 或在 header 类中添加 viewDidLoad 方法以使其工作!谢谢大家!

【问题讨论】:

您确定您的插座已在 Interface Builder 中连接并且您是 @synthesizeing 您的 title 属性吗? 马特 - 绝对连接。 :/ 刚刚仔细检查。 【参考方案1】:

所以我不确定这里的“标题”是什么意思。在视图控制器上设置标题不会影响视图中的内容。如果您尝试在部分上设置标题,您可能只想使用 tableView:titleForHeaderInSection。 tableView:viewForHeaderInSection 用于更复杂的部分标题(例如,如果您想放置按钮或多行文本或类似的东西)。如果重要,您可以使用这两种方法。我不能 100% 确定它们被调用的顺序,但我很确定它会查找 viewForHeaderInSection,然后如果它为 nil,它会转到 titleForHeaderInSection。

【讨论】:

嘿戴夫 - 我要的是我正在加载的自定义视图,而不是苹果的股票。原来视图在显示之前不会自行加载,因此您必须通过调用 header.view 或添加 - (void) viewDidLoad 方法并在其中设置标签来强制视图出现并设置它!【参考方案2】:

该函数期望返回 UIView,但您似乎返回的是 UIViewController。你的意思是return header.view

【讨论】:

糟糕!让我的代码更简单,忘记包含 .view。我肯定会这样做。将编辑我的问题。对不起!

以上是关于iOS - 在用作 UITableView 标头的 ViewController 上设置网点的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 标头上的自动布局

UITableview 标头中的 UITapGesture

UITableView 标头不可见

修改 UITableView 标头中的 UISearchBar 宽度

使用部分时是否可以使用固定的uitableview标头?

位于顶部的 UITableView 标头