我无法弄清楚我做错了什么在调用方法时没有任何反应。
在类
的接口中声明ViewController* mainMenu;
- (id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
mainMenu = [[ViewController alloc] init];
....
}
}
- (void)pauseEnabled {
// mainMenu.pauseButton.hidden = NO;
// mainMenu.pauseButton.enabled = YES;
[mainMenu.pauseButton setHidden:NO];
[mainMenu.pauseButton setEnabled:YES];
}
- (void)pauseDisabled {
mainMenu.pauseButton.hidden = YES;
mainMenu.pauseButton.enabled = NO;
}
- (void)startGame {
[self pauseEnabled];
......
}
答案 0 :(得分:1)
当你跑步时:
mainMenu = [[ViewController alloc] init];
您正在创建一个新的视图控制器,其视图未加载且从未在屏幕上显示。您需要获取实际显示在屏幕上的ViewController
实例,以便您可以向其发送消息。如何做到这一点在很大程度上取决于您的应用程序的结构以及创建ViewController
的内容。
您对initWithSize:
的使用表明此对象本身不是控制器。在这种情况下,您可能需要重新考虑您正在做的事情,而不是让此类维护对视图控制器的引用,而是将其引用给它在创建时应与之交互的按钮。
答案 1 :(得分:0)
确保pauseButton
已连接到storyboard / xib文件中的插座。基本上,确保它不是nil
。还要验证是否要将mainMenu
的视图添加到视图层次结构中。