向视图添加一个指向视图控制器的属性。
@interface CustomUIView
...
@property (nonatomic, weak) IBOutlet ViewController *viewController;
...
@end
将此插座连接到 Interface Builder 中的视图控制器。
现在您可以从您的视图中访问它:
self.viewController.x
然而,这是一个相当“落后”的设计,我认为可能有更好的方法来实现你想要的。通常视图不应该直接访问数据(甚至控制器)。相反,它应该具有一组足以表示或呈现视图负责的任何内容的属性。
在您的情况下,您可以将该属性添加x
到您的视图中。每当您的模型(x
您的视图控制器的)更改时,您都会更新视图。如果您需要收到有关视图更改的通知,您可以覆盖视图中的设置器。
@interface CustomUIView
@property (nonatomic, strong) NSObject *x;
...
@end
@implementation CustomUIView
- (void)setX:(NSObject *)x {
if (_x != x) {
_x = x;
// x was changed, do anything you need to update the view here
// like calling [self setNeedsDisplay] to redraw the view.
}
}
...
@end