最好在 NSNotificationCenter 中调用选择器方法 ViewWillAppear

Is good to call selector method ViewWillAppear in NSNotificationCenter

我想知道在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不是很好的实现方式吗?

.

  1. viewWillAppear 是一个 template method,OS 会为你调用它,你不应该自己手动调用它。

  2. 在视图消失之前,调用 viewWillAppearUIViewControllerlifecycle 中被调用两次会破坏层次结构,这可能会导致一些非常奇怪的行为。

  3. 调试您自己的 UIViewController 子类或任何子类将是一场噩梦。

正如您所建议的那样,使用 setUpInitialization() 函数执行第二个选项,并在收到 UIApplicationDidBecomeActiveNotification.

时执行所有操作