2010-07-18 5 views
8

세 가지 수준의 UIViewController가 포함 된 드릴 다운 탐색 앱이 있습니다. 각보기 컨트롤러에서 UIKeyboard를 각각 하위 클래스로 만들려고하는 UITextField가 있습니다. 내 질문은 알림을 "설정"하고 "설정을 해제"하는 위치입니다.UIKeyboard 알림 모범 사례 - iPhone SDK

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 

그래서이있는 viewDidLoad 이벤트를 설정하는 최고의 IT :

나는 알림을? 또는 viewWillAppear 이벤트? 내가 드릴 다운

와 마찬가지로 [[NSNotificationCenter defaultCenter] removeObserver:self];

내가 여러 keyboardWillShow: 이벤트를하고 싶지 않아위한

호출 할 수 있습니다.

많은 감사, 브렛

답변

7

내가 viewWillAppearviewWillDisappear등록 불필요 뷰가 나타나거나 사라 때마다 호출됩니다 된대로 initdealloc 방법에서 이러한 넣어 제안/등록 해제 알림.

+0

viewDidUnload : iOS 6.0에서 사용되지 않습니다. 뷰는 메모리 부족 조건에서 더 이상 제거되지 않으므로이 메서드는 호출되지 않습니다. – Vamos

+0

init에 등록, dealloc에서 등록 취소 – jjxtra

+0

은 무엇을 달성하고 싶은지에 달려 있습니다. – drct

5

나는 그럼에도 불구하고 메모리가 viewDidLoad 훨씬 더 자주 viewDidUnload 이상의 호출되는 의미를 해제해야하는 경우에만라고 당신이 viewWillAppear에 옵저버로 등록 viewDidUnload 이후 viewWillDisappear에 등록을 취소 좋을 것 다음은지고의 문제가있을 수 있습니다 같은 알림을 두 번 이상.