2010-07-18 9 views
8

Üç düzey UIViewControllers içeren bir aşağı iniş navigasyon uygulamasına sahibim. Her görünüm denetleyicisinde, UIKeyboard'u her biri için alt sınıflara ayırmaya çalıştığım bir UITextField'ım var. Sorum şu: bildirimleri "ayarlamak" ve onları "unset".UIKeyboard bildirimleri için en iyi uygulama - iPhone SDK

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

yüzden viewDidLoad olayı bunları en iyi He got:

Ben bildirimleri var? Veya viewWillAppear olayı? Ben detaya olarak

Ve aynı şekilde [[NSNotificationCenter defaultCenter] removeObserver:self];

Birden keyboardWillShow: etkinlik istemiyorum için

çağrılacak.

Çok teşekkürler, Brett

cevap

7

Ben viewWillAppear ve viewWillDisappearkayıt için gereksizdir görüntü çıkar ya kaybolur her zaman, adı verilecek gibi, init ve dealloc yöntemlerde bu koymak önermek/ekleme, çıkarma bildirimleri.

+0

viewDidUnload: iOS 6.0'da kullanımdan kaldırılmış. Görünümler artık düşük bellek koşullarında temizlenmez ve bu nedenle bu yöntem hiçbir zaman çağrılmaz. – Vamos

+0

Init'te kayıt yaptırın, dealloc in kaydını kaldırın – jjxtra

+0

ne elde edeceğinize bağlıdır. – drct

5

ben yine de hafıza viewDidLoad çok daha sık viewDidUnload daha denilen olsun, yani serbest olması yeterlidir çağrılan Eğer viewWillAppear gözlemci olarak kayıt ve viewDidUnload beri viewWillDisappear içinde kaydını öneririz istiyorum ve o zaman alma sorun olabilir Aynı bildirimi bir kereden fazla.