如何从 xib 文件 uiview 到情节提要 ViewController

Posted

技术标签:

【中文标题】如何从 xib 文件 uiview 到情节提要 ViewController【英文标题】:How to segue from xib file uiview to storyboard ViewController 【发布时间】:2014-07-21 23:13:47 【问题描述】:

我的程序没有明确的表。它唯一的表格来自“搜索栏和搜索显示控制器”视图,为searchDisplayController.searchResultsTableView。所以要创建它的自定义 TableViewCell,我使用 xib 文件。现在我需要从 xib 文件中定义的自定义单元格到情节提要中定义的 ViewController 吗?我该怎么做?

换一种说法:如何从“searchDisplayController.searchResultsTableView”的自定义 TableViewCell 转换为 ViewController

背景故事 How do I add storyboard-based Header and CustomTableCell to a “Search Bar and Search Display Controller”

似乎已经有了答案,但我不明白:Segue from Storyboard to XIB

【问题讨论】:

【参考方案1】:

与任何表格视图一样,您应该能够在 searchDisplayControl 类上设置 UITableViewDelegate 和 UITableViewDatasource 委托。然后在 didSelectRowAtIndexPath 方法中处理 segue 事件。我从来没有玩过搜索显示控制器,因为当我为了灵活性做任何与搜索相关的事情时,我通常会分开搜索栏和表格视图,以及你说你想在表格视图中使用原型表格视图单元格故事板。

但是,如果您打算使用 searchDisplayController,您可能会得到这样的结果..

您不能从一个 XIB -> 故事板或 2 个不同的故事板之间切换。

您可以将 viewController 的引用传递给每个 tableViewCell,如果您愿意,可以通过这种方式访问​​ segue。但是,为了将来的灵活性,我可能会在这种情况下亲自使用协议/委托。

【讨论】:

顺便说一句: 你说你总是把 SearchBar 和 Table 分开。我试过了,但是当数据源是服务器时它不起作用?所以如果你有一个 git 项目或一些你不介意分享的示例代码,请:我正在这个阶段学习 ios,我很想知道我可以如何做以下事情:用户使用 searchBar 在服务器上启动搜索以及何时服务器响应到达,数据通过表格显示。 (对不起,我跑题了,但听起来你可能比我更了解 iOS)。 这种方法的另一个问题是 searchBar 出现在 NavigationBar 中 另外请注意,UISearchDisplayController 在 iOS 8 中已被弃用,所以现在最好避免使用它。 github.com/alexbutenko/SimpleUITableViewSearch 检查此项目以获取示例。有任何问题都可以问 我正在玩它——到目前为止一切都很好。但是将搜索栏放在导航栏内的问题仍然存在。你对如何做到这一点有一些想法吗?【参考方案2】:

正如我们在上面的 cmets 中所讨论的,最好避免使用 UISearchDisplayController,因为它在 iOS 8 中已被弃用。

所以最好使用类似https://github.com/alexbutenko/SimpleUITableViewSearch的东西

您可以使用 self.navigationItem.titleView = searchBar 将搜索栏嵌入导航栏。如果您有任何问题,请查看代码示例。

【讨论】:

你介意分解一下吗?我已经阅读了以下答案但没有得到它:***.com/questions/18401825/…

以上是关于如何从 xib 文件 uiview 到情节提要 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 无法让 @IBDesignable .xib 文件显示在情节提要或模拟器上

在情节提要中调用 xib

如何在编码中用“.xib”文件替换情节提要

从 xib 或带有情节提要的其他场景添加子视图

在 ios 中从 xib 移动到情节提要

从 xib 而不是主场景切换到情节提要中的场景