在另一个视图控制器中更新UILabel

时间:2011-07-08 01:32:14

标签: iphone objective-c ios uinavigationcontroller uilabel

嗨我有一个测验应用程序,在回答每个问题后给你一个UILabel的分数,所以我有一个按钮,当你点击正确的答案你得到10分,如果得到错误的答案你得到0分,但如何将int分数值带到下一个问题,该问题由navController推送。

谢谢!

5 个答案:

答案 0 :(得分:1)

您可以在 app delegate 中声明 int属性可以在应用程序中的任何位置更新或读取它。您无需承担额外的负担将结果从第一个视图控制器一直传送到最后一个视图控制器。

在app appate声明名为得分属性

并且,在任何视图控制器中,

YourAppDelegate *appDelegate;
appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.score += 10;

答案 1 :(得分:0)

嗯,有六种方法可以做到。也许最简单的方法是将您的app delegate用作中央数据管理器。

答案 2 :(得分:0)

更简洁的方法是在推送新视图控制器时传递该数据:

UINextVC *vc = [[UINextVC alloc] initWithNibName:UINextVC andData:text]; //this'd be the label
[self.navigationController pushViewController:vc];
[vc release];

否则,请在推送之前执行以下操作:

vc.data = text;

答案 3 :(得分:0)

另一种方法是使用静态变量和类方法。

答案 4 :(得分:0)

另一种方法是使用NSNotificationCenter。这样,您可以在任何地方推送和接收数据/触发事件,而无需将它们从一个类传递到另一个类。想象一下它是一种无线传输。