【发布时间】: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 以便触发展开转场?还是我忽略了应用程序架构中更基本的东西?对我来说,这似乎是包含设置屏幕的一种相当明显的方法,但经过数小时的搜索,我找不到其他人遇到此问题的实例。我也找不到任何有关如何实现应用内设置屏幕的教程或示例。
【问题讨论】:
标签: ios xcode architecture interface-builder navigationbar