如何在 Xcode Interface Builder 中将导航项添加到 Table View Controller(带有静态单元格)?
Posted
技术标签:
【中文标题】如何在 Xcode Interface Builder 中将导航项添加到 Table View Controller(带有静态单元格)?【英文标题】:How do I add a navigation item to a Table View Controller (with static cells) in Xcode Interface Builder? 【发布时间】:2018-05-17 16:49:14 【问题描述】:我正在使用 Xcode 9.3 和 Swift 4.1 构建我的第一个 ios 应用程序。
我的应用程序基本上是一个视图控制器,它包含一个表格视图并嵌入在导航控制器中。当我点击表格视图中的一个单元格时,应用程序会转换到从属视图控制器。因为我使用的是导航控制器,所以从属视图顶部已经有一个导航栏,并带有一个返回其父级的有用按钮。
我还想在用户点击导航栏中的“设置”按钮时显示设置屏幕。使用新的视图控制器作为设置屏幕的占位符是可行的——我可以使用模态转场显示设置屏幕,屏幕可以有一个按钮或导航项来展开转场回到我的初始视图。
一切正常,一切都很好。
但是,我想使用带有静态单元格的表格视图来构建我的设置屏幕。我只需要几个具有各种控件的单元组,用户可以在其中设置他们的偏好。为了让 Xcode 支持静态单元格,我必须使用 Table View Controller 作为设置屏幕的基础。这就是问题出现的地方。
使用 Table View Controller,我不能再在屏幕上放置按钮或导航项来触发展开转场。
我可以将 segue 设置为“显示”,使其成为导航控制器施加的导航层次结构的一部分。这确实在我的设置屏幕上提供了一个导航栏,其中包含一个导航项,该导航项可以转换回原始视图控制器。
但这不是我想要的。从用户体验的角度来看,设置页面现在是层次结构中的从属页面。我真正想要的是设置页面通过水平翻转以模态方式显示,因此感觉就像应用程序中的一个单独屏幕。
所以我的问题是,如何将必要的 UI 小部件添加到 Table View Controller 以便触发展开转场?还是我忽略了应用程序架构中更基本的东西?对我来说,这似乎是包含设置屏幕的一种相当明显的方法,但经过数小时的搜索,我找不到其他人遇到此问题的实例。我也找不到任何有关如何实现应用内设置屏幕的教程或示例。
【问题讨论】:
【参考方案1】:我不确定我是否正确理解了您的问题。我认为您想向 UITableViewController 添加一些按钮。为此,这是我的解决方案。在 UINavigationController 中嵌入 UITableViewController 将为您工作。当点击设置按钮时,以模态方式呈现导航控制器。由于导航控制器将表视图控制器作为根视图控制器,因此表视图控制器将具有导航栏。您可以向其中添加按钮。
【讨论】:
谢谢你——它有效!我将导航控制器理解为层次结构中的父项,而不是以其他方式促进导航。以上是关于如何在 Xcode Interface Builder 中将导航项添加到 Table View Controller(带有静态单元格)?的主要内容,如果未能解决你的问题,请参考以下文章
如何(轻松)在 Xcode 6 的 Interface Builder 中删除约束
如何在 XCode 4 Interface Builder 中将窗口方向更改为横向?
如何从 XCode 4 Interface Builder 更改 NSScrollView 字体?
如何在 Xcode 6 Interface Builder 中使用模板渲染模式?
如何使用 Interface Builder 和 Swift 在 xCode6 中正确创建故事板
如何在 XCode 5 Interface Builder 中设置accessibilityLabel 或accessibilityIdentifier?