只调用一次,例如viewDidLoad
在viewWillAppear之前调用它。因此,在UIViewController navigationController不再为空之后调用它。
基本上我想为UIViewController以编程方式设置东西。但是,我希望navigationController属性已经存在。此外,我希望整个事情只被召唤一次。
答案 0 :(得分:1)
我对iOS中的视图生命周期并不十分熟悉,但如果有可能没有适合您描述的方法而且真的需要有这样的事件,那么你可以随时使用与财产相结合的回叫,即
- (void)viewWillAppear:(BOOL)animated {
if (!self.specialMethodHasBeenCalled) { [self doSpecialMethod]; }
// other viewWillAppear stuff to do every time
}
- (void)specialMethod {
// do stuff
self.specialMethodHasBeenCalled = YES;
}
可能需要为线程安全做更多的事情,但这只是一个hacky解决方案。