Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UIViewController子类中添加通知观察者的计时_Iphone_Objective C_Ios_Cocoa Touch_Cocoa - Fatal编程技术网

Iphone 在UIViewController子类中添加通知观察者的计时

Iphone 在UIViewController子类中添加通知观察者的计时,iphone,objective-c,ios,cocoa-touch,cocoa,Iphone,Objective C,Ios,Cocoa Touch,Cocoa,我对Cocoa Touch还不太熟悉。现在我正在尝试将UIViewController子类化,以提供我的自定义视图。由于我打算使用NSUserDefaults保存UITextField(passcodeField)的内容,因此每当UITextField更改其值时,我都希望收到通知 我在某个地方读到,为了做到这一点,我应该添加视图控制器作为UITextFieldTextDidChangeNotification通知的观察者。然而,我只是不知道什么时候该这么做。我考虑过几种选择 在-loadView

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

我在某个地方读到,为了做到这一点,我应该添加视图控制器作为UITextFieldTextDidChangeNotification通知的观察者。然而,我只是不知道什么时候该这么做。我考虑过几种选择

  • -loadView
    方法中。然而,由于我使用XIB加载我的视图,我认为我不应该弄乱这个方法,而是应该让它保持原样。(顺便说一句,这一点我说得对吗?)

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

  • 在UIViewController的初始值设定项中。如果我想在那里添加通知,我必须引用UITextField。通过这样做,我基本上可以在真正需要视图之前创建它。此外,我想我在某个地方读到,如果系统内存不足,屏幕外的视图可能会被破坏。因此,如果发生这种情况,我可能会失去通知,对吗


  • 所以我现在完全糊涂了。你们能给我一些建议把它放在哪里吗?非常感谢

    将它放在ViewController的-(void)viewDidLoad方法中,记住调用[super viewDidLoad];在实施之初。

    非常感谢!我想这正是合适的地方。顺便说一句,我只是有点困惑,为什么覆盖-loadView并在其中调用[super-loadView]仍然无法从XIB打开接口。这背后有什么机制在起作用?谢谢如果从xib加载,则不会调用loadView。仅当您打算从代码构建视图时才会调用它。