如何从 Xib 加载的 ViewController 设置 NavigationController navigationItem 标题
How to set NavigationController navigationItem title from ViewController loaded by Xib
我有一个 UIViewController
从 Xib 文件加载它的视图。在我的 AppDelegate.m
中,我想用我的 ViewController 启动我的 rootViewController 并且我希望通过采用 NavigationBar
视图来设置 navigtionItem 的标题myViewController:
的 Xib 文件的一部分
MyViewController *myViewController = [[MyViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
Each time the top-level view controller changes, the navigation controller updates the navigation bar accordingly.
在我的设置中,这似乎没有发生,或者我没有指出我的 NavigationBar
视图实际上是要考虑的导航栏。
我如何告诉 NavigationController 根据 NavigationBar
视图更新它的 navigationItem 内容(标题、左栏按钮和右栏按钮),该视图是我的ViewController 中 Xib 文件的一部分?
更新
我的 Xib 布局如下所示:
我知道我可以通过以下方式在代码中设置这些项目:
self.navigationItem.titleView = ...;
self.navigationItem.leftBarButtonItem = ...;
但我希望他们在 ViewController 的 Xib 文件中进行设计,并且应该在 NavigationController 中使用它们。
在 ViewWillAppear
方法中 ViewController set-
self.navigationItem.title = @"Title name";
也可以用同样的方法 set self.navigationItem.leftBarButton
和 RightBarButton 项
将 UINavigationBar 视图添加到主 UIView 并不像您认为的那样。它只是在视图中添加了一个导航栏视图,它没有绑定到 UINavigationController。
如果您使用故事板,则可以将 UINavigationItem
添加为 UIViewController
的子项。但是由于您没有使用情节提要,最简单的方法是更新 viewDidLoad
.
中的 navigationItem
旁注:Apple 不建议使用 viewDidLoad
设置导航项。如果您真的想以正确的方式进行操作,您可以在 navigationItem
getter.
中进行操作
- (UINavigationItem*)navigationItem
{
// get super navigation item
UINavigationItem *navItem = [super navigationItem];
// do stuff
return navItem;
}
我有一个 UIViewController
从 Xib 文件加载它的视图。在我的 AppDelegate.m
中,我想用我的 ViewController 启动我的 rootViewController 并且我希望通过采用 NavigationBar
视图来设置 navigtionItem 的标题myViewController:
MyViewController *myViewController = [[MyViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
Each time the top-level view controller changes, the navigation controller updates the navigation bar accordingly.
在我的设置中,这似乎没有发生,或者我没有指出我的 NavigationBar
视图实际上是要考虑的导航栏。
我如何告诉 NavigationController 根据 NavigationBar
视图更新它的 navigationItem 内容(标题、左栏按钮和右栏按钮),该视图是我的ViewController 中 Xib 文件的一部分?
更新
我的 Xib 布局如下所示:
我知道我可以通过以下方式在代码中设置这些项目:
self.navigationItem.titleView = ...;
self.navigationItem.leftBarButtonItem = ...;
但我希望他们在 ViewController 的 Xib 文件中进行设计,并且应该在 NavigationController 中使用它们。
在 ViewWillAppear
方法中 ViewController set-
self.navigationItem.title = @"Title name";
也可以用同样的方法 set self.navigationItem.leftBarButton
和 RightBarButton 项
将 UINavigationBar 视图添加到主 UIView 并不像您认为的那样。它只是在视图中添加了一个导航栏视图,它没有绑定到 UINavigationController。
如果您使用故事板,则可以将 UINavigationItem
添加为 UIViewController
的子项。但是由于您没有使用情节提要,最简单的方法是更新 viewDidLoad
.
navigationItem
旁注:Apple 不建议使用 viewDidLoad
设置导航项。如果您真的想以正确的方式进行操作,您可以在 navigationItem
getter.
- (UINavigationItem*)navigationItem
{
// get super navigation item
UINavigationItem *navItem = [super navigationItem];
// do stuff
return navItem;
}