2017-01-03 3 views
0

NSNotificationCenter defaultCenter에서 viewWillAppear: 메서드를 호출하는 것이 좋습니다.NSNotificationCenter의 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

앱이 활성화되면 시스템에서'viewWillAppear :'을 (를) 이미 호출하지 않았습니까? – mattsson

+0

@mattsson 예 앱이 tabbarcontroller에 대해 활성화됩니다. – kiran

+0

그런 다음 알림을 사용하여 다시 전화를 걸 이유가 무엇입니까? – mattsson

답변

4

no.

  1. viewWillAppeartemplate method, 당신을 위해 그것을 호출 할 OS, 당신은 당신의 자기에 의해 수동으로 전화를해서는 안됩니다. viewWillAppear를 호출

  2. 뷰가 사라질 것입니다 전에

    는 두 번 UIViewControllerlifecycle 계층 구조를 깰 것, 그것은 매우 이상한 행동을 초래할 수 호출되고있다.

  3. 자신의 UIViewController 하위 클래스 또는 모든 하위 클래스를 디버깅하는 것은 악몽입니다.

당신이 제안하는 바와 같이, setUpInitialization() 기능을 사용하여 두 번째 옵션을 수행하고 UIApplicationDidBecomeActiveNotification를받을 때,이 모든 것을 할.

+0

정보 주셔서 감사합니다. – kiran