【问题标题】:UINavigationBar missing from UITableViewUITableView 中缺少 UINavigationBar
【发布时间】:2016-07-19 19:45:56
【问题描述】:

我以模态方式提供UITableView 以提供对某些应用程序设置的访问权限。当模态视图(根视图控制器)出现时,它有一个我期望的导航栏。 However, when one of the options is selected and the next 'UITableView` is popped to the top of the stack, there's no navigation bar.

这是UITableViews 中的一个孩子的样子:

据我所知,两个子视图应该有导航栏,而我不必做任何事情,因为它们嵌入在 UINavigationController 中。

我尝试将导航栏拖到视图中,但 IB 只会让我将它们放在 UITableView 中,如果我这样做,它们确实会出现,但它们在视图中也太高并跑到状态栏,我可以对它们设置任何布局约束来解决这个问题。

我没有走运地搜索了 Apple 文档,并在 SO 上找到了许多非常非常古老且在 Objective-C 中的线程。

我可以让这些视图像我期望的那样一起工作,还是我必须从头开始构建子视图?

更新:我仍在努力让它发挥作用。我现在尝试从头开始创建一个新的视图控制器。视图层次结构如下所示:

您可以在情节提要中看到一些不对劲的地方:

当我在模拟器中运行它时,我得到一个新的错误:

“[UITableViewController loadView] 使用故事板“Main”中的标识符“UIViewController-cDg-wV-aMN”实例化视图控制器,但没有获得 UITableView。但我通过 Ctrl 键从根 VC 中的单元格直接拖动到表视图来创建 segue。

总而言之,这是我想要实现的流程:UIViewController(初始 VC)-> UINavigationController(从底部模态显示)-> UITableViewController(从右到左显示并带有标准导航栏)。

我的 segues 都设置为 Show(例如 Push)

任何帮助或建议将不胜感激。

【问题讨论】:

  • 故事板中子表视图的导航栏是否隐藏?
  • 您是否将故事板 segue 设置为“显示(例如推送)”?
  • @JoeyEtamity,是的,它们都是“展示(例如推送)”。
  • @TejaNandamuri ,不确定。我没有弄乱代码中的任何可见性属性。我应该在某个地方寻找 IB 吗?

标签: ios uitableview uinavigationcontroller uinavigationbar


【解决方案1】:

好吧,在遇到与another thread 不同的问题后,我想出了如何解决我遇到的问题,但它有一些建议让我大开眼界。

问题是由于我在设置视图控制器上创建了从 UITableViewCell 到每个子 UITableViewControllers 的转场。

为了解决这个问题,我只是在设置UITableViewController 和每个子UITableViewControllers 之间创建了segues。

希望有一天这对其他人有所帮助。

【讨论】:

  • 我也有类似的问题。您是否致电prepareForSegue 并检查segue 标识符以确定要呈现哪个孩子?
  • @royco,是的,我正在检查 segue.identifier 以使用简单的 if-then 来确定在 segue 之前要做什么。在其他情况下,当有超过 2 种可能性时,我会打开标识符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多