1

我想以编程UINavigationBar方式对属性进行一些更改。或者是最好的地方,为什么?- viewDidLoad:-initWithNibName:

4

2 回答 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 回答