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 中连接并且您是@synthesize
ing 您的 title 属性吗?
马特 - 绝对连接。 :/ 刚刚仔细检查。
【参考方案1】:
所以我不确定这里的“标题”是什么意思。在视图控制器上设置标题不会影响视图中的内容。如果您尝试在部分上设置标题,您可能只想使用 tableView:titleForHeaderInSection。 tableView:viewForHeaderInSection 用于更复杂的部分标题(例如,如果您想放置按钮或多行文本或类似的东西)。如果重要,您可以使用这两种方法。我不能 100% 确定它们被调用的顺序,但我很确定它会查找 viewForHeaderInSection,然后如果它为 nil,它会转到 titleForHeaderInSection。
【讨论】:
嘿戴夫 - 我要的是我正在加载的自定义视图,而不是苹果的股票。原来视图在显示之前不会自行加载,因此您必须通过调用 header.view 或添加 - (void) viewDidLoad 方法并在其中设置标签来强制视图出现并设置它!【参考方案2】:该函数期望返回 UIView
,但您似乎返回的是 UIViewController
。你的意思是return header.view
?
【讨论】:
糟糕!让我的代码更简单,忘记包含 .view。我肯定会这样做。将编辑我的问题。对不起!以上是关于iOS - 在用作 UITableView 标头的 ViewController 上设置网点的主要内容,如果未能解决你的问题,请参考以下文章