在UIViewController子类中添加通知观察器的时间

时间:2012-10-20 03:09:19

标签: iphone objective-c ios cocoa-touch cocoa

我是Cocoa Touch的新手。现在我正在尝试将UIViewController子类化以提供我的自定义视图。由于我打算使用NSUserDefaults保存UITextField(passcodeField)的内容,因此我希望每当UITextField更改其值时都会收到通知。

我已经在某处读过,为了做到这一点,我应该将视图控制器添加为UITextFieldTextDidChangeNotification通知的观察者。但是,我只是不确定何时这样做。我考虑过几种选择。

  1. -loadView方法中。但是,由于我使用XIB加载我的视图,我认为我不应该使用这种方法,而应该保持原样。 (我在这一点上是否正确,BTW?)

  2. -viewWillAppear方法中。但是这种方法可能被多次调用,因为视图可能被移出并进入屏幕而不会被破坏和重新创建。 (我是否正确?)这不会对程序造成任何伤害,但肯定不是正确的方法。

  3. 在UIViewController的初始化程序中。如果我想在那里添加通知,我必须引用UITextField。通过这样做,我基本上导致视图在真正需要之前创建。另外我想我在某处读到如果系统内存不足,屏幕外视图可能会被破坏。因此,如果发生这种情况,我可能会失去通知,对吗?

  4. 所以我现在完全糊涂了。你们能给我一些建议吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

将它放在ViewController的 - (void)viewDidLoad方法中,记得调用[super viewDidLoad];在实施开始时。