繁体   English   中英

如何确保在没有警告的情况下调用viewDidLoad?

[英]How do I ensure that viewDidLoad is called without warning?

BGLogin * login = [[BGLogin alloc]init];

[nav pushViewController:login animated:YES];
login.view; //access it once to trigger didload
NSAssert(login.navigationItem==login.navigationItemAtDidload,@"They should be the same");//View didload isn't called yet here.
NSAssert(login.navigationController == nav,@"The navigation controller should be the same");
NSAssert(nav.navigationBar.topItem==login.navigationItem,@"We just push our self so our stuff should be on top");

这是简单的代码。 但是,如果我不执行login.view,则不会首先调用viewDidLoad。 如果我执行login.view,则收到警告,提示未使用login.view的值。

所以我该怎么做?

如果您不关心返回值,则不要使用属性访问器语法( login.view )。 像常规方法一样调用getter: [login view]

如果您只想使用login.view; 为了调用viewDidLoad ,我认为最好在BGLogin类的init方法中添加一些代码。

如 :

- (id)init
{
    // your code

    self.view.tag = 0;
    return self;
}

或者您可以更改您的login.view; login.view.tag = 0;

它会调用viewDidLoad ,但我认为它不是更好,但是它将为您工作,也许有人有更好的方法来处理它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM