我目前正在为我的第一个iPhone游戏设计结构并遇到问题。目前,我有一个'MenuViewController',它允许你选择要玩的级别和一个LevelViewController。解除模态Segue后更新UIViewController
“MenuViewController”上的触发了一个模式的Segue到'LevelViewController'。
在“LevelViewController” A UIButton
触发以下方法返回到“MenuViewController”:
-(IBAction)back:(id)sender //complete
{
[self dismissModalViewControllerAnimated:YES];
}
的问题是,我有一个UILabel
,打印总点的数量的菜单页玩家有。每当我回到层面的菜单时,我都希望这个标签自动更新。目前,该标签在“MenuViewController”编程定义:
-(void)viewDidLoad {
[super viewDidLoad];
CGRect pointsFrame = CGRectMake(100,45,120,20);
UILabel *pointsLabel = [[UILabel alloc] initWithFrame:pointsFrame];
[pointsLabel setText:[NSString stringWithFormat:@"Points: %i", self.playerPoints]];
[self.pointsLabel setTag:-100]; //pointsLabel tag is -100 for id purposes
}
self.playerPoints是MenuViewController
的整数属性有没有一种方法,我可以更新标签?提前致谢!
听起来像它会工作。但我在哪里打电话?现在,如果我将NSLog(@“菜单加载”)放入我的菜单视图控制器的viewDidLoad中,它不会在调用dismissModalViewController之后从级别返回视图控制器之后重新记录“菜单加载”,这意味着viewDidLoad方法根本没有被调用。如果我在viewDidAppear或viewWillAppear中调用它,它会起作用吗?谢谢。 – 2012-08-15 20:59:04
首先,你确定你正在从你的LevelViewController更新MenuViewController的pointsValue属性吗?你是否像LevelViewController上的'delegate'属性指向MenuViewController? – Ariel 2012-08-15 21:05:23
我不认为我有LevelViewController上的委托属性。这是创建一个的方式吗? '@property(nonatomic,assign)id delegate;' –
2012-08-15 21:12:10