UIviewController不会触发自己的委托类

时间:2014-06-07 16:34:11

标签: ios view viewcontroller

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

无论如何,我正在使用init启动该视图控制器(是的,我已尝试使用initWithNibName),问题在于它自己的委托方法,如viewDidAppear或{{1不会在自己的类上触发。

它是否应该在viewDidLoadmyViewController.xib之间设置代理链接?怎么了?

1 个答案:

答案 0 :(得分:5)

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

“文件所有者”也是您将视图控制器的IBOutletIBAction连接到的内容。

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

-[UIViewController initWithNibName:bundle:]

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

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

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

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

如果您想使用另一个也将其“文件所有者”类设置为myViewController的xib文件,则会传递该xib文件名:

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