我有一个mainUIView,其中有一个自定义的UIImageView(名为myImageView)。
在myImageView.h文件中,我声明了:
@property (strong, nonatomic) mainViewController *viewController;
在myImageView.m文件中,我有以下代码:
self.viewController = self.parent;
此行引发错误指示: 在myImageView类型的对象上找不到属性“parent”。
我认为将myImageView放在mainUIView中会产生默认的父子关系,但显然不是这样。
在主故事板中,我尝试按住Ctrl键将myImageView拖动到mainViewController,但没有弹出选项让我选择委托。
有人可以给我这些解释吗?我感到有点困惑......非常感谢!
答案 0 :(得分:1)
由于您的myImageView是UIView,因此没有父级。只是有一个superview再次是UIView。基本上一个视图不知道它的控制器。虽然控制器可以实现视图的委托以获取有关事件的信息。因此,您的AppDelegate知道您的ViewController,控制器知道您的ImageView。 AppDelegates窗口知道控制器的视图,该视图很可能包含整个视图层次结构(AlertViews,HUDViews,模态视图和模拟视图除外)。
我认为您想要做的最好是实现委托模式。 (参见Apple Docs)