我的viewcontroller类是我唯一的当前View,另一个类是我的数学逻辑的静态方法。 ViewController类有一个标签的IBOutlet。如何在Logic类的功能中引用此插座?
答案 0 :(得分:1)
您可以像任何其他变量一样将指针传递给逻辑类,但我不建议直接访问IBOutlet属性。
我建议的是,让逻辑类返回值并让控制器根据需要更新标签,或者如果它涉及不立即返回的后台处理,请使用委托模式。这样,逻辑类将在数据准备就绪或计算完成时通知控制器,然后控制器可以根据需要更新UI。
查看iOS协议以定义委托类的结构:)
答案 1 :(得分:0)
您不应该允许 Logic 类访问UI控件,因为它不遵循模型 - 视图 - 控制器模式,这是一种智能的方法您的代码有条理,以便随着您的项目变得更加复杂,更容易。相反,您希望ViewController
为您在UI和Logic
课程之间进行通信。
例如,如果您在视图底部有一个计算按钮,用户点击,则应由ViewController
处理。 ViewController
会调用Logic
类中可能返回值的函数。然后ViewController
将获取该值并将其设置为标签的文本。这里有一段代码说明了这个想法:
- (IBAction) calculateSomeValue: (id) sender {
int result = [Logic calculateValue];
[self.label setText: [NSString stringWithFormat: @"Your result is: %d", result]];
}