在 View Controller 中引用自定义视图时出错

Posted

技术标签:

【中文标题】在 View Controller 中引用自定义视图时出错【英文标题】:Errors referencing custom view in View Controller 【发布时间】:2012-04-08 19:46:01 【问题描述】:

我已经为 Interface Builder 中的视图控制器分配了一个自定义视图类。 View Controller 中“view”的引用出口是有效的“CustomView”,并且 Interface Builder 中的视图对象已被分配了一个自定义类“CustomView”。但是,当我尝试在我的视图控制器中引用“CustomView”的特定属性时,通过它的“view”属性,我得到了错误。我认为这是因为它仍然相信它是一个 UIView 类,而不是我的“CustomView”类。

有没有办法更新视图控制器的“视图”类定义?

【问题讨论】:

【参考方案1】:

如果您确定有一个 CustomView 对象链接到“视图”,请使用强制转换给编译器一个提示,例如:

[(CustomView *)view doSomething];

((CustomView *)view).stringProperty = @"Hello";

如果您希望它安全,请在调用之前检查 view 是否确实是 CustomView 类的成员。

【讨论】:

谢谢菲利普。我能够使用强制转换来访问 CustomView 类的属性。我想我正在寻找一种方法来避免这样做。 我看到的唯一另一件事是创建您自己的 CustomView 属性,在 IB 中链接它,并使用它而不是“视图”。它通过额外的设置和释放增加了一些开销,但如果你喜欢非演员编码,也不会太糟糕。

以上是关于在 View Controller 中引用自定义视图时出错的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails如何自定义controller对应的view目录?

MVC:我应该在 View Controller 或 UIView 的自定义子类中添加和实现触摸手势吗

Safari View Controller 自定义大小,框架添加为子视图

如何从自定义 UICollectionViewCell 启动 View Controller

带有自定义表格单元格的 FB Friend Picker View Controller

每个 View Controller 中应用的自定义导航栏图像,不符合 NSUserDefaults 同步