UIviewController不会触发自己的委托类

Spa*_*Dog 0 view viewcontroller ios

我不是Interface Builder的常规用户.我正在尝试使用a创建一个新的UIViewController类xib.比方说,我创建了一个名为控制器,myViewController当我创建,Xcode创建3个文件,myViewController.h,myViewController.mmyViewController.xib,但xib只包含一个视图.它不应该包含viewController吗?

无论如何,我正在启动那个视图控制器init(是的,我试过initWithNibName),问题是它自己的委托方法喜欢viewDidAppearviewDidLoad不在它自己的类上触发.

是不是应该在myViewController.xib和之间有代理链接myViewController.m?怎么了?

Tyl*_*ler 5

xib的"文件所有者"是您的视图控制器.如果在选择"文件所有者"时检查Identity Inspector,您将看到其自定义类应设置为myViewController.

"文件所有者"也是您将视图控制器的IBOutlets和IBActions 连接起来的.

如果要以编程方式创建视图控制器的实例,请使用以下方法:

-[UIViewController initWithNibName:bundle:]

您可以将xib文件的名称传递给该方法,如下所示:

[[myViewController alloc] initWithNibName:@"myViewController" bundle:nil]

...或者,如果你传入nil,它将默认使用具有与你的类名匹配的文件名的xib:

[[myViewController alloc] initWithNibName:nil bundle:nil]

如果您想使用其"文件所有者"类设置为的其他xib文件,myViewController则应传递该xib文件名:

[[myViewController alloc] initWithNibName:@"YourOtherXibFileName" bundle:nil]