基本问题是关于基本iOS MVC应用程序的结构..
我知道IBOutlets用于访问视图元素,如按钮和标签等,以及修改或获取它们的值。
使用IBOutlet从视图中访问应用程序中的另一个对象是否正常??
例如......
@interface CustomView : UIView {
IBOutlet Person *person;
}
我们是否应该使用人物(型号)的插座,以便视图显示有关此人的信息?
或者视图是否应该直接实例化Person对象而不使用IBOutlets和Interface Builder。
感谢您的澄清。
*出于某种原因,我正在遵循的教程将Model类放入nib中。
答案 0 :(得分:3)
IBOutlet
只不过是一个注释,它告诉Interface Builder哪个属性和/或实例变量应该在IB中可见(因此可以连接)。您通常需要将UIViewController
的一个或多个子类连接到给定nib文件中的视图实例,但是根据模型 - 视图 - 控制器设计模式,您应该避免将View对象直接连接到模型对象。 / p>
Apple在iOS Tutorial中概述了这种设计模式。您还应该阅读Apple的Human Interface Guidelines - 它将真正为您解释很多这类问题。
答案 1 :(得分:2)
除非您想在Interface Builder中将对象从nib绑定到此变量,否则不必使用IBOutlet
。编译器忽略IBOutlet
“关键字”(它不是一个真正的关键字,而是一个空的预处理器宏),它只是告诉接口构建器它可以连接到在nib中实例化的对象。
如果您需要nib中的Person
对象,请在Interface Builder中创建它并将其连接到插座。如果您不需要从笔尖访问它,您也可以在代码中创建它,而不是将其作为插座。