为长篇文章道歉,我希望对那里的某些人有所帮助。
我编写了一款iPhone游戏(在Quartz 2d中),它使用以下结构:
一切正常。我现在正在尝试整合游戏的主菜单。到目前为止,我已经完成了以下工作:
到目前为止一直很好 - 按下“开始”按钮开始游戏。但.....
现在的问题是我找不到游戏控制器调用主菜单类的方法(例如游戏结束时)。我不能使用“self dismissModalViewController”,因为Game Controller是一个NSObject类而不是视图控制器。如何让游戏控制器拉出我的主菜单?
感谢大家的阅读,
马丁
答案 0 :(得分:1)
如果你的菜单对象仍然存在,只需调用它的“dissmisModalViewController”。 例如[[MainMenu getInstance] dismissModalViewControllerAnimated:YES];其中getInstance返回您的对象或将其作为属性存储在GameController中,因此当您从MainMenu或GameViewController创建GameController时,只需将其自身指定为其属性gameInstance.mainMenu = self;
如何制作getInstance方法:
你可以使用Singleton模式(你可以从apple dev网站获得一个)或者如果你手动创建MainMenu你可以在一些全局变量中记住self,而getInstance将是类方法,类似的东西:
@interface MainMenu : UIViewController
{
}
+ (MainMenu*) getInstance;
@end
并在实施中
MainMenu *singleInstance;
@implementation MainMenu
- (id)init
{
if((self = [super init]))
{
singleInstance = self;
} return self;
}
+ (MainMenu*)getInstance
{
return singleInstance;
}
@end;
希望这有帮助,
KrzysztofZabłocki