0

我有我的 viewcontroller 类用于我唯一的当前 View 和另一个具有静态方法的类用于我的数学逻辑。ViewController 类有一个标签的 IBOutlet。如何从我的 Logic 类的函数中引用这个插座?

4

2 回答 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 回答