我想以编程UINavigationBar
方式对属性进行一些更改。或者是最好的地方,为什么?- viewDidLoad:
-initWithNibName:
问问题
113 次
2 回答
2
– viewDidLoad
是执行此类更改的理想函数。
顾名思义,当调用此函数时,视图将完全加载到内存中,进行此类更改应该没有任何问题。
我不建议进行此类更改,– viewWillAppear:
或者– viewDidAppear:
每次视图出现时都会调用它们。如果您想在每次出现时更改导航栏属性,这将很有帮助。我认为这种情况不太可能发生,因此建议– viewDidLoad
因为它只会被调用一次。
-initWithNibName:
将从 nib 文件创建您的控制器实例。您可以执行您在此函数中提到的操作,但有时它可能会表现得很奇怪,因为它可能不处于正确的状态。甚至 Apple Docs 也建议"If you want to perform additional initialization after the nib file is loaded, override the viewDidLoad method and perform your tasks there."
于 2013-06-16T09:37:32.750 回答
0
如果您的 viewControllers 具有不同的 navigationBar 属性,您可以通过下一种方式更改它们。在 UIViewController 子类中覆盖下一个方法:
- (void) viewWillDisappear: (BOOL) animated
{
[super viewWillDisappear: animated];
[self.navigationItem setTitleView: nil];
}
- (void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear: animated];
[self.navigationItem setTitleView: titleView];
}
有用。
于 2013-06-16T09:03:36.837 回答