如何在 Xcode Interface Builder 中将导航项添加到 Table 视图控制器(带有静态单元格)?

How do I add a navigation item to a Table View Controller (with static cells) in Xcode Interface Builder?

我正在使用 Xcode 9.3 和 Swift 4.1 构建我的第一个 iOS 应用。

我的应用基本上是一个包含 Table 视图并嵌入在导航控制器中的视图控制器。当我点击 Table 中的一个单元格时,查看应用程序转换到从属视图控制器。因为我使用的是 Naviagtion Controller,从属视图的顶部已经有一个导航栏,带有返回其父级的有用按钮。

我还想在用户点击导航栏中的“设置”按钮时显示“设置”屏幕。使用一个新的视图控制器作为设置屏幕的占位符是可行的——我可以显示带有模态转场的设置屏幕,并且屏幕可以有一个按钮或导航项来将转场展开回我的初始视图。

一切正常,一切都很好。

但是我想使用带有静态单元格的 Table 视图来构建我的设置屏幕。我只需要几个带有各种控件的单元格组,用户可以在其中设置他们的首选项。为了 Xcode 支持静态单元格,我必须使用 Table 视图控制器作为我的设置屏幕的基础。问题就出在这里。

使用 Table 视图控制器,我无法再在屏幕上放置按钮或导航项来触发展开转场。

我可以将 segue 设为“显示”,使其成为导航控制器强加的导航层次结构的一部分。这确实在我的设置屏幕上提供了一个导航栏,其中有一个导航项可以转换回原始视图控制器。

但这不是我想要的。从用户体验的角度来看,设置页面现在是层次结构中的从属页面。我真正想要的是通过水平翻转以模态方式显示“设置”页面,这样感觉就像应用程序中的一个单独屏幕。

所以我的问题是,如何将必要的 UI 小部件添加到 Table 视图控制器,以便我可以触发展开转场?还是我忽略了应用程序架构中更基本的东西?对我来说,这似乎是包含设置屏幕的一种相当明显的方法,但经过数小时的搜索,我找不到其他人遇到此问题的实例。我也找不到任何关于如何实现应用内设置屏幕的教程或示例。

我不确定我是否正确理解了你的问题。我认为您想向 UITableViewController 添加一些按钮。为此,这是我的解决方案。在 UINavigationController 中嵌入 UITableViewController 将为您工作。当点击设置按钮时,以模态方式呈现导航控制器。由于导航控制器将 table 视图控制器作为根视图控制器,因此 tableviewcontroller 将具有导航栏。您可以向其中添加按钮。