我有我的 viewcontroller 类用于我唯一的当前 View 和另一个具有静态方法的类用于我的数学逻辑。ViewController 类有一个标签的 IBOutlet。如何从我的 Logic 类的函数中引用这个插座?
问问题
354 次
2 回答
1
您可以像传递任何其他变量一样将指针传递给逻辑类,但我不建议直接访问 IBOutlet 属性。
我的建议是让逻辑类返回值并让控制器根据需要更新标签,或者如果它涉及不立即返回的后台处理,请使用委托模式。这样,当数据准备好或计算完成时,逻辑类会通知控制器,然后控制器可以根据需要更新 UI。
查看 iOS 协议以定义委托类的结构 :)
于 2013-07-30T02:22:13.487 回答
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]];
}
于 2013-07-30T02:39:27.540 回答