0

我见过一堆主题,其中多个 ViewController 转到一个 ViewController,但不是相反。

我正在制作一个游戏,您从 Game_select.m 中选择一个游戏,它需要输出到 6 个视图控制器之一。我试过使用故事板并对其进行硬编码,但都没有为我工作。

我已经将 Game1.h 和 Game2.h 导入到 Game_select.m 中。当我运行我的代码时,它总是转到 Game1 ViewController。这是我正在尝试的代码:

    if(getGame1) {
    //go to game1
    Game1 *game1 = [[Game1 alloc] init];
        [self.navigationController pushViewController:game1 animated:YES];
    }

    if(getGame2) {
    //go to game2
    Game2 *game2 = [[Game2 alloc] init];
        [self.navigationController pushViewController:game2 animated:YES];
    }

感谢您的帮助。干杯。

4

3 回答 3

2

我个人不会在这种情况下使用导航控制器。使您的所有 viewControllers 子类 (the normal) UIViewController,然后使用此代码来呈现您的 viewControllers 之一:

请注意,此代码仅在您以编程方式设置视图或使用 xib(不是情节提要)时才有效,那么如果您使用initWithNibName: bundle:而不是使用,这也将有效init

if(getGame1) {
    //go to game1
    Game1 *game1 = [[Game1 alloc] init];
    [self presentViewController:game1 animated:YES completion:nil];
}

if(getGame2) {
    //go to game2
    Game2 *game2 = [[Game2 alloc] init];
    [self presentViewController:game2 animated:YES completion:nil];
}
于 2013-04-15T04:19:00.500 回答
1

创建从主视图控制器到其他视图控制器的手动 segues。首先,单击要显示的 viewController 。确保您选择了 viewController 本身,而不是其中一个视图:

在此处输入图像描述

然后单击 segues 选项卡(在最右侧)并从“Manual Segue”圆圈拖动到要从中进行 segue的 viewController 。

在此处输入图像描述

然后单击 segues 并在选项卡中为它们赋予不同的名称,如下所示:

在此处输入图像描述

然后,在您的代码中,您将有这样的一行:

[self performSegueWithIdentifier:@"showAlternate" sender:nil];

您将使用它来显示“showAlternate”标识符的 viewController。您将拥有多个带有“Game1”和“Game2”等标识符的 segue。

于 2013-04-17T15:33:24.050 回答
0

仔细检查getGame1andgetGame2BOOL值,而不是某种对象,如果其非零,则评估为 YES。我多次犯过这个错误:

NSNumber* booleanValue = @NO;
if (booleanValue) {
    // this code will run
}

if ([booleanValue boolValue]) {
    // this code will not run - as expected
}

说真的,我犯过这个错误很多次了。

于 2013-04-15T04:51:25.080 回答