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

时间:2018-05-17 16:49:15

标签: ios xcode architecture interface-builder navigationbar

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

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

当用户点击导航栏中的“设置”按钮时,我还想显示“设置”屏幕。使用新的View Controller作为“设置”屏幕的占位符 - 我可以使用模态segue显示“设置”屏幕,并且屏幕可以有一个按钮或导航项目来将segue展开回初始视图。

一切正常,一切都很好。

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

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

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

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

所以我的问题是,如何将必要的UI小部件添加到Table View Controller,以便我可以触发展开segue?或者我在应用程序的架构中忽略了一些更基本的东西?对我而言,这似乎是一种包含设置屏幕的相当明显的方法,但经过数小时的搜索后,我无法找到其他人遇到此问题的实例。我也找不到任何有关如何实现应用内设置屏幕的教程或示例。

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解你的问题。我想你想给UITableViewController添加一些按钮。为此,这是我的解决方案。在UINavigationController中嵌入UITableViewController将适合您。以模式方式点击设置按钮当前导航控制器。由于导航控制器将表视图控制器作为根视图控制器,tableviewcontroller将具有导航栏。您可以添加按钮。