【发布时间】:2023-03-12 15:26:01
【问题描述】:
我有一个UIViewController,它从 Xib 文件中加载它的视图。在我的AppDelegate.m 中,我想使用 myViewController 启动我的 rootViewController,并且我希望通过采用 NavigationBar 视图来设置导航项的标题,该视图是 myViewController 的 Xib 文件的一部分:
MyViewController *myViewController = [[MyViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
每次顶级视图控制器发生变化时,导航控制器都会相应地更新导航栏。
在我的设置中,这似乎没有发生,或者我没有表明我的 NavigationBar 视图实际上是要考虑的导航栏。
我如何告诉 NavigationController 根据 myViewController 中 Xib 文件的一部分 NavigationBar 视图更新它的 navigationItem 内容(标题、左右栏按钮)?
更新
我的 Xib 布局如下所示:
我知道我可以通过以下方式在代码中设置这些项目:
self.navigationItem.titleView = ...;
self.navigationItem.leftBarButtonItem = ...;
但我希望它们在 ViewController 的 Xib 文件中进行设计,并且它们应该在 NavigationController 中使用。
【问题讨论】:
-
一般情况下,我会在视图控制器的
viewDidLoad方法中分配self.navigationItem.titleView、self.navigationItem.leftBarButtonItem等。 -
您是否在 xib 中的
UIView中添加了NavigationBar视图?如果是这样,那不是它的工作方式。您实际上需要将UINavigationItem添加到xib 中的控制器中。然后你当然还需要用笔尖初始化控制器。 -
@ChrisLoonam 感谢您的提示。这不是我要找的。看我的更新。 @Rengers 是的,这就是我所做的,也是我想要的。我在 NavigationBar 中添加了 UINavigationItem。查看更新的问题。
标签: ios objective-c uinavigationcontroller