为什么我的UIView不是我的UIImageView的“父”?

时间:2012-03-31 22:34:46

标签: xcode uiviewcontroller delegates uiimageview parent

我有一个mainUIView,其中有一个自定义的UIImageView(名为myImageView)。

在myImageView.h文件中,我声明了:

@property (strong, nonatomic) mainViewController *viewController;

在myImageView.m文件中,我有以下代码:

        self.viewController = self.parent;

此行引发错误指示: 在myImageView类型的对象上找不到属性“parent”。

我认为将myImageView放在mainUIView中会产生默认的父子关系,但显然不是这样。

在主故事板中,我尝试按住Ctrl键将myImageView拖动到mainViewController,但没有弹出选项让我选择委托。

有人可以给我这些解释吗?我感到有点困惑......非常感谢!

1 个答案:

答案 0 :(得分:1)

由于您的myImageView是UIView,因此没有父级。只是有一个superview再次是UIView。基本上一个视图不知道它的控制器。虽然控制器可以实现视图的委托以获取有关事件的信息。因此,您的AppDelegate知道您的ViewController,控制器知道您的ImageView。 AppDelegates窗口知道控制器的视图,该视图很可能包含整个视图层次结构(AlertViews,HUDViews,模态视图和模拟视图除外)。

我认为您想要做的最好是实现委托模式。 (参见Apple Docs)