在 iOS 应用程序中使用 viewForHeaderInSection 方法
Posted
技术标签:
【中文标题】在 iOS 应用程序中使用 viewForHeaderInSection 方法【英文标题】:using viewForHeaderInSection method in iOS application 【发布时间】:2013-02-17 17:50:07 【问题描述】:我有一个包含多个段的分组 UITableView。我想在页脚的每个段下方有一个按钮,当按下它时会将用户带到不同的视图控制器(带有一些选项 - 要在目标 VC 中加载的数据模型)。有问题的两个 ViewController 由 UINavigationController 管理。
我不确定实现这一目标的最佳方法是什么......
我试过了:
在 IB 中创建每个 UIView(使用按钮)并尝试将视图添加到那里的节页脚。我不认为这是可能的。
纯粹在代码中创建 UIView,然后将它们添加到每个部分页脚。这工作正常,但是这里的问题是我无法在 IB 中连接我的 segue 和 segue 标识符。我正在使用 prepareForSegue 方法将正确的数据模型发送到目标 VC(取决于按下哪个段页脚按钮),所以我需要这个。这里有替代方案吗,我可以通过其他方式触发发送我的数据模型吗?
谢谢,詹姆斯
【问题讨论】:
我想你的意思是说“我有一个包含多个部分的分组UITableView
。我想在页脚的每个部分下方都有一个按钮......”。
我确实是这个意思。谢谢rmaddy!
随时编辑您的问题,使其更正确。
【参考方案1】:
1 是可能的。
将您的客户视图从笔尖中拉出,就像您将任何其他自定义视图 Load View from Nib 一样;然后使用添加它:
- (UITableViewHeaderFooterView *)headerViewForSection:(NSInteger)section
编辑抱歉,并不是说#2 也不可行。
- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier
// like this:
UIViewController * vc = [[self storyboard] instantiateViewControllerWithIdentifier:@"TheNewView"]
[self.navigationController pushViewController:vc animated:YES];
【讨论】:
【参考方案2】:使用选项 2,从视图控制器而不是从特定视图或按钮创建您的 segue。给它一个有意义的标识符,然后在您的按钮的操作方法中,在您的视图控制器上调用performSegueWithIdentifier:sender:
。您可以传入任何您喜欢的对象作为视图控制器,包括索引路径或保存部分标识符的 NSNumber,因此您可以在 prepareForSegue 中访问它并使用数据模型的适当部分。
【讨论】:
以上是关于在 iOS 应用程序中使用 viewForHeaderInSection 方法的主要内容,如果未能解决你的问题,请参考以下文章
在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接