我想知道在NSNotificationCenter defaultCenter中调用viewWillAppear:
方法是否合适。
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(viewWillAppear:) name:UIApplicationDidBecomeActiveNotification object:nil];
或
-(void)setUpInitialization{
// dump code here in ViewWillAppears.
}
调用方法setUpInitialization
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(setUpInitialization) name:UIApplicationDidBecomeActiveNotification object:nil];
如果直接调用viewWillAppear
是一种不好的实施方式?
答案 0 :(得分:4)
否强>
viewWillAppear
是template method,操作系统会为您调用它,您不应该自己手动调用它。
在视图消失之前,在viewWillAppear
lifecycle中调用UIViewController
被调用两次会破坏层次结构,这可能会导致一些非常奇怪的行为。
调试自己的UIViewController
子类或任何子类将是一场噩梦。
根据您的建议,使用setUpInitialization()
功能执行第二个选项,并在收到UIApplicationDidBecomeActiveNotification
时执行所有操作。