更改不同图层中标签的标签颜色

所以我有一个名为MainScene的场景,其中包含名为UpgradesNew CCScrollView UpgradesScroller所在的位置。 我有一个button,当在MainScene点击时,应该将hasItem布尔值设置为YES ,然后在未隐藏图层UpgradesNew时,应根据布尔值的输出更改标签颜色。

这是我试过的。

hasItem设置为true:

 -(void) buyItem { hasItem = true; } } 

MainScene这是UpgradesNew MainScene隐藏的方法。

 -(void)Upgrades { UpgradesNew *upNew = [[UpgradesNew alloc]init]; [upNew changeColor]; if (upgradesScroller.visible == NO) { upgradesScroller.visible = YES; } else if (upgradesScroller.visible == YES) { upgradesScroller.visible = NO; } } 

UpgradesNew

 -(void)changeColor { if (hasItem == true) { label.color = [CCColor greenColor]; NSLog(@"changecolor"); } } 

我认为这个问题是因为我正在分配一个UpgradesNew的空实例。 但我不知道如何以正确的方式做到这一点。

问题是有点混乱,信息有点不完整,但我只能假设问题在这里:

 UpgradesNew *upNew = [[UpgradesNew alloc]init]; 

我猜UpgradesNew是某种你已经实例化并在屏幕上显示的视图或视图控制器。 当你调用[[UpgradesNew alloc] init]; ,你正在创build一个新的对象。 您所需要的是对您打算更改的当前存在的UpgradesNew对象的引用。 您需要在这个现有的对象上调用changeColor方法,而不是创build一个新的对象。

编辑:如果你想得到如何获得正确的对象的引用的帮助,你需要在你的问题更多的细节 – 作为书面,这些对象之间的关系没有太多的提示。