UIKeyboard通知的最佳实践-iPhone SDK
我有一个具有三级UIViewController的深入导航应用程序。 在每个视图控制器中,我都有一个UIExtField,在这里我试图为每个视图控制器的UIKeyboard子类化。我的问题是在哪里“设置”通知和“取消设置”通知 我收到通知:UIKeyboard通知的最佳实践-iPhone SDK,iphone,objective-c,uikeyboard,Iphone,Objective C,Uikeyboard,我有一个具有三级UIViewController的深入导航应用程序。 在每个视图控制器中,我都有一个UIExtField,在这里我试图为每个视图控制器的UIKeyboard子类化。我的问题是在哪里“设置”通知和“取消设置”通知 我收到通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
所以最好在viewDidLoad事件中设置它们?或者视图将出现在事件中
对于[[NSNotificationCenter defaultCenter]removeObserver:self]也是如此代码>
我不希望在向下钻取时调用多个键盘将显示:
事件
非常感谢,,
Brett我建议您将它们放在init
和dealloc
方法中,因为每次视图出现或消失时,视图将出现
和视图将消失
都将被调用,这对于注册/取消注册通知是不必要的。不过,我建议您在视图中注册为观察者将出现,而在视图中注销将消失,因为viewDidUnload
仅在必须释放内存时才被调用,这意味着调用viewDidLoad
的频率比调用viewDidUnload
的频率要高得多,然后您可能会遇到多次收到相同通知的问题。viewDidUnload:在iOS 6.0中已弃用。在内存不足的情况下,视图不再被清除,因此永远不会调用此方法。在init中注册,在deallock中取消注册取决于您希望何时实现什么