【问题标题】:How do I add a navigation item to a Table View Controller (with static cells) in Xcode Interface Builder?如何在 Xcode Interface Builder 中将导航项添加到 Table View Controller(带有静态单元格)?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 谢谢你——它有效!我将导航控制器理解为层次结构中的父项,而不是以其他方式促进导航。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多