NSObject使用nib加载UIView但是文件所有者是UIViewController

时间:2013-12-10 10:25:53

标签: ios objective-c uiview uiviewcontroller uinib

我有一个自定义对象,可以处理视图的一些操作。基本上它用nib文件初始化UIView。但我希望我的viewcontroller负责处理IBActions。所以我将我的viewcontroller设置为文件所有者并连接了IBActions。

在我的自定义对象中,我加载了这样的nib文件:

self.nibView = [[[NSBundle mainBundle] loadNibNamed:@"nibName" owner:delegate options:optionsDict] lastObject];

我设置了委托,这是我的UIViewController(有点奇怪)是所有者。所以我期待我的viewcontroller处理IBActions,但事实并非如此。我的自定义对象试图响应操作,当然应用程序因为没有响应选择器而崩溃。我怎样才能做到这一点?

编辑:

查看控制器 View Controller

自定义对象 Custom Object

Nib文件 Nib File

1 个答案:

答案 0 :(得分:0)

委托是一个协议,所有者应该是一个对象。

如果您的视图控制器符合委托协议,则应设置owner:self 并确保将视图的delegate属性设置为视图控制器。这可以使用IBOutlet在IB中完成,或者在代码中使用:self.nibView.delegate = self