我有一个UIViewController
,它从Xib文件加载视图。在我的AppDelegate.m
中,我想使用myViewController初始化rootViewController,并希望通过获取NavigationBar
视图(它是myViewController的Xib文件的一部分)来设置navigtionItem的标题: / p>
MyViewController *myViewController = [[MyViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
每次顶级视图控制器更改时,导航控制器都会相应地更新导航栏。
在我的设置中,这似乎没有发生,或者我没有指出我的NavigationBar
视图实际上是要考虑的navigationBar。
如何根据NavigationBar
视图(它是myViewController的Xib文件的一部分),告诉NavigationController更新其navigationItem内容(标题,左右栏按钮)?
更新
我的Xib布局如下:
我知道我可以通过以下方式在代码中设置这些项目:
self.navigationItem.titleView = ...;
self.navigationItem.leftBarButtonItem = ...;
但是我希望它们在ViewController的Xib文件中进行设计,并且应该在NavigationController中使用它们。
答案 0 :(得分:0)
在ViewController集的ViewWillAppear
方法中-
self.navigationItem.title = @"Title name";
同样可以使用set self.navigationItem.leftBarButton
和RightBarButton项目
答案 1 :(得分:0)
将UINavigationBar视图添加到主UIView并不会执行您认为的操作。它只是在视图中添加一个导航栏视图,而没有与UINavigationController绑定。
如果使用情节提要,则可以将UINavigationItem
添加为public StreamWriter(Stream stream) : this(stream,
encoding: UTF8NoBOM, // <==== THIS IS THE PROBLEM
bufferSize: 1024, leaveOpen: false)
{
}
的子级。但是,由于您没有使用情节提要板,因此最简单的方法是更新UIViewController
中的navigationItem
。
旁注:Apple不建议使用viewDidLoad
来设置导航项。如果您确实想以正确的方式进行操作,例如可以在viewDidLoad
吸气剂中进行操作。
navigationItem