在 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 中延迟深度链接

应用程序在 iOS 9 中崩溃,但在 iOS 10 中没有

iOS - 如何使用 branch.io 在 Appstore 中测试深度链接

在 ios 应用中使用 googleapis

在 tvOS 应用中使用 iOS 框架

在 ios 应用中使用 Monaca 版本