导航栏未填充 - iOS7

Posted

技术标签:

【中文标题】导航栏未填充 - iOS7【英文标题】:Navigation Bar Not Populated - iOS7 【发布时间】:2013-10-08 14:28:43 【问题描述】:

我的应用程序中的单个视图拒绝填充 ios7 中的导航栏。我可以看到该栏在那里,已启用、可见且透明,因为当我向上拖动它们时,我的可滚动控件浮动在其下方。问题很简单,当我将控件添加到 self.navigationItem.leftBarButtonItem / self.navigationItem.rightBarButtonItem 并用 self.title = @"Title"; 表示视图的标题(在 ViewController 中)时,它们不会显示在导航区域中。

奇怪的是,如果我设置self.navigationController.navigationBar.topItem.title = @"Title",这会在导航栏中的视图上呈现一个标题(但这不是解决方案,因为它在应用程序的其他地方导航时会导致问题)。表达式“(self.navigationController.navigationBar.topItem != self.navigationItem)”的计算结果为真,我不明白这是怎么回事。

应用程序中还有其他视图可以使用上面显示的语句正确呈现导航控件。

我应该提一下,这个应用程序在 iOS6.1 下按预期运行。我对 iPhone 开发人员还很陌生,所以很容易错过一些东西。任何我可以检查的建议将不胜感激。

【问题讨论】:

你是否将视图控制器推入导航控制器堆栈? 可能不正确,那里的代码已经读取: self.navigationController.viewControllers = [NSArray arrayWithObject:self.myViewController]; --- 用 [self.navigationController pushViewController:self.vehicleListViewController animated:YES] 更新它;似乎做得更好。 如果您实际推送视图控制器而不是使用setViewControllers:animated: 或属性设置器,是否可以解决问题?如果是这样,我认为这是一个应该向 Apple 报告的错误。 pushViewController 完全解决了我的问题,谢谢。如果您想提交答案,我很乐意将答案标记为正确。问题似乎是您不能将 ViewControllers 直接分配给 navigationController 上的 viewControllers 属性并让它工作,这在 iOS6.1 中有效,所以正如你所说,这可能是一个错误。这是因为以前的开发人员想在导航堆栈中添加两个 ViewController,但我已经使用了两次 pushViewController,它们可以毫无问题地完成相同的结果。 请向 Apple 提交错误报告,您可能会收到更有价值的回复。 【参考方案1】:

解决了。我使用了不正确的方法将视图控制器推入导航控制器。

代替

self.navigationController.viewControllers = [NSArray arrayWithObject:self.myViewController];

使用下面的

[self.navigationController pushViewController:self.vehicleListViewController animated:YES];

【讨论】:

以上是关于导航栏未填充 - iOS7的主要内容,如果未能解决你的问题,请参考以下文章

导航栏未正确显示

模态视图导航栏未正确显示

SwiftUI - 导航栏未显示在模态导航视图中

导航栏未显示在网页上

React Bulma 移动导航栏未按预期工作

UIsearchBar 取消按钮导致导航栏未隐藏