我创建了一个自定义视图。它有一个委托,它会在按下某些按钮时通知它。
我将此添加到视图控制器的viewDidLoad
:
self.myCustomView.delegate=self;
到目前为止一切正常。
但那还不够酷。我想做表格视图样式,我可以直接从视图拖动到文件所有者和(ta-da!)它自动设置。
答案 0 :(得分:2)
将IBOutlet
关键字添加到班级的delegate
媒体资源中:
@property (nonatomic, assign) IBOutlet id<MyViewDelegate> delegate;
IBOutlet
关键字告诉nib编辑器允许您建立与该属性的连接。
您也可以这样说:
@property (nonatomic, assign) IBOutlet MyView *delegate;
然后IB只允许您将其连接到MyView
。但协议或id更灵活。
编辑:因关注IB而失去一分
你说:
我创建了一个自定义视图。它有一个委托,它会在按下某些按钮时通知它。
接收按钮事件是视图控制器的角色,但有时委托将用于对某些事件进行更细粒度的控制。
一般情况下,不要在作为主窗口的视图上创建按钮按下的委托,在这种情况下,您应该在ViewController中处理按钮事件。按钮位于父视图上,该视图将事件转发到响应者链(您仍需要将它们连接到目标)。我并不是说您不应该使用委托模式进行按钮按下,但是按钮有自己的连接,可以根据需要通过拖放查看IB中的控制器。但是像你这样的情况是完全有效的。