【发布时间】:2016-02-24 21:35:18
【问题描述】:
我创建了一个带有 XIB (MyXIB) 的视图并创建了一个 UIView 子类 (MyViewSubclass)。我将MyViewSubclass 设置为MyXIB 视图的“自定义类”。
我已将MyXIB 中的按钮连接到MyViewSubclass 中的 IBAction。
在应用程序的主视图控制器中,我调用:
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"MyXIB" owner:self options:nil];
MyUIViewSubclass *myView = [subviewArray objectAtIndex:0];
[self.view addSubview:myView];
这可以将新视图添加到现有视图控制器之上,但是每当我从MyXIB 中点击按钮时,应用程序就会崩溃并说它是sending an unrecognized selector 到父视图控制器。
如何获得MyXIB 上的按钮以调用MyViewSubclass 中的IBAction?
【问题讨论】:
-
您必须将按钮操作连接到您的视图控制器类。不是你的自定义视图类。
-
确保您的自定义视图文件所有者是您的视图控制器。
-
那么如果我想在我的应用程序的许多不同的屏幕上显示
MyXIB,我是否需要在每个访问MyXIB的UIViewController中实现按钮的方法? -
对于您所描述的,我建议您在
MyXIB中创建一个protocol,然后在任何必要的控制器上实现您的协议方法。
标签: ios objective-c subclass xib