2012-07-17 58 views
0

我在Objective-C for iOS中做了一个简单的文字游戏,我开始选择“Single View Application”,所以我有一个myProgramViewController.xib文件和一个每个myProgramViewController.h和myProgramViewController.m。我刚才意识到我想要一个首先加载的主菜单类型的东西,并允许用户选择单词的长度,难度,类似的东西,以及“Go!”。或“开始!”按钮。我怎样才能添加这个菜单视图?我宁愿用户不能回到它(现在),所以我宁愿不使用导航栏。简单的ios文字游戏菜单的新视图

+0

您使用的是故事板? – 2012-07-17 14:58:48

+0

不,我创建它时选择了“单视图应用程序”,认为我只需要一个。有没有简单的方法将这个现有的代码导出为故事板格式? – user1418214 2012-07-17 15:05:25

+1

单一视图应用程序可以附带一个故事板,它实际上是该屏幕之后的复选框。所有的项目都应该由故事板制作,因为苹果目前正在支持和改进这个项目。下面的答案应该可以帮助你。 – 2012-07-17 15:11:50

回答

0

您可以以模态方式呈现视图。假设你有一个名为MainMenu的视图,它有一个.xib,.h和.m文件。

在你myProgramViewController.m文件,你可以调用代码

MainMenu *mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenu" bundle:nil]; 
[self presentModalViewController:mainMenu animated:YES]; 

然后在您的MainMenu.m文件,一旦用户做出了他们的选择,请致电:

[self dismissModalViewControllerAnimated:YES]; 
1

语境上面的评论。

当segue发生时,您可以将任何数据从一个ViewController传递到另一个ViewController。在我的情况下,我会做一个故事板,让菜单控制器成为初始视图控制器,然后让游戏屏幕成为一个模式。 在- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender(在你的MenuViewController上),你可以得到segue.destinationViewController并在其上设置数据。

例子:

MenuViewController ---- playGameSegue ----> GameViewController 

在MenuViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    GameViewController * destination = (GameViewController*) sender.destinationViewController; 
    destination.anyPropertyYou'veDefinedInGameViewController.h = DATA; 
    destination.otherProperty = DATA; 
}