我有两个视图控制器:LevelSelectViewController和GameViewController。
我正在制作的应用程序的根视图控制器(根视图控制器称为MainViewController)。
如何使用导航方法pushViewController:animated:对于LevelSelectViewController到GameViewController的这种转换?
在我的LevelSelectViewController中,单击一个按钮,执行以下操作方法:
- (IBAction)buttonPressed:(id)sender {
// the pushViewController:animated: method hopefully can be used
// other code
}
答案 0 :(得分:0)
如果您正在使用故事板,只需创建一个segue。如果您没有传递任何信息,可以通过控制从一个视图控制器拖动到另一个视图控制器来推送它。它是否是根视图控制器并不重要。
如果要传递数据,请在视图控制器上创建故事板上的segue,而不是索引路径或按钮等,并在视图控制器中调用prepareForSegueMethod,其标识与故事板上的segue完全相同。
答案 1 :(得分:0)
如何将LevelSelectViewController转换为GameViewController的导航方法
pushViewController:animated:
?
术语“根视图控制器”可能有点混乱,因为UIWindow
具有rootViewController
属性,而UINavigationController
具有initWithRootViewController
参数。如果您正在调用-pushViewController:animated:
,则视图控制器图中必须有导航控制器,因为该方法属于UINavigationController
。如果您的LevelSelectViewController
实例是导航堆栈的一部分,则可以执行以下操作:
- (IBAction)buttonPressed:(id)sender {
// create a game controller
GameViewController *gameController = [[GameViewController alloc] initWithNibName:nil bundle:nil];
// push it
[self.navigationController pushViewController:gameController animated:YES];
// other code
}
现在更常见的做法是将所有视图控制器放在故事板中,只需将按钮连接到推送过渡。