【问题标题】:UINavigationController pushViewController with xib fileUINavigationController pushViewController 与 xib 文件
【发布时间】:2012-01-17 15:30:02
【问题描述】:

我有我的应用程序,直到现在我还没有使用任何 .xib 文件来创建 UI。当我推送这个 ViewController 时,我创建了一个带有 xib 文件的 ViewController。我得到 2 个导航栏。

所以基本上这意味着......我一直在以编程方式创建我的 UINavigationController,当我将导航栏放在顶部时,我得到 2 个导航栏。

有人可以帮帮我吗?谢谢。

【问题讨论】:

  • 您能否提供更多信息,例如为什么需要以编程方式创建 uinavigationcontroller 并拥有 xib? vc的层次结构是什么样的?更多信息将帮助我们帮助您!

标签: ios objective-c xcode uinavigationcontroller xib


【解决方案1】:

UINavigationController 自动添加导航栏。如果您的 xib 包含另一个 UINavigationBar,则会有两个。

这没什么复杂的:)

【讨论】:

  • 我知道,但这是否意味着我无法解决它?我需要继续以编程方式创建我的视图控制器吗?
  • 没有。只需从您的 xib 中删除 UINavigationBar。
  • 但是我上面有一个 UIBarButtonItem 我想使用 :S 如果我没有 UINavigationBar 我就不能把它拿出来。
  • UINavigationController 的数据是从 [UIViewController navigationItem] 读取的,无法从 xib 设置此属性。您刚刚创建了一个完全不同的 UINavigationBar,它没有以任何方式连接到 UINavigationController。在xib中总会有一些事情是做不到的。这是其中之一。在控制器的 init 方法中设置导航栏。其他一切都可以留在 xib 中。
  • 如果你愿意,你可以用这种方式在你推送的视图控制器中隐藏 UINavigationController 的导航栏:[self.navigationController setNavigationBarHidden:YES animated:YES];。但是,正如 Sulthan 建议的那样,您可以删除内部导航栏,继续使用 UINavigationController 提供的导航栏。它更简单。在您的控制器中,您可以完全控制 UINavigationController 栏。检查这个:UINAvigationController Clas
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多