有没有一种内置的方法可以从UIView
升到UIViewController
?我知道你可以通过[self view]
从UIViewController
到它的UIView
,但我想知道是否有反向参考?
有没有一种内置的方法可以从UIView
升到UIViewController
?我知道你可以通过[self view]
从UIViewController
到它的UIView
,但我想知道是否有反向参考?
既然这已经是公认的答案很久了,我觉得我需要用一个更好的答案来纠正它.
以下是有关需要的一些意见:
下面是一个如何实现它的示例:
@protocol MyViewDelegate < NSObject >
- (void)viewActionHappened;
@end
@interface MyView : UIView
@property (nonatomic, assign) MyViewDelegate delegate;
@end
@interface MyViewController < MyViewDelegate >
@end
视图与其委托交互(例如,就像UITableView
一样),它并不关心它是在视图控制器中实现,还是在您最终使用的任何其他类中实现.
我最初的答案如下:I don't recommend this, neither the rest of the answers where direct access to the view controller is achieved
没有内置的方法可以做到这一点.虽然您可以通过在UIView
上添加IBOutlet
并在Interface Builder中连接它们来绕过它,但不建议这样做.视图不应该知道视图控制器.相反,您应该按照@Phil M的建议进行操作,并创建一个用作委托的协议.