2

我正在尝试根据用户在UIAlertView. 我是目标 c 的新手,遇到了一些麻烦。

当用户按下“我完成了”时,我希望应用程序导航回上一个视图控制器。当用户按下“记分板”时,我希望应用导航到下一个视图控制器。

UIAlertView *jigsawCompleteAlert = [[UIAlertView alloc]   //show alert box with option to play or exit
                                  initWithTitle: @"Congratulations!" 
                                  message:completedMessage 
                                  delegate:self 
                                  cancelButtonTitle:@"I'm done" 
                                  otherButtonTitles:@"Play again", @"Scoreboard",nil];
            [jigsawCompleteAlert show];

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        NSLog(@"Cancel Tapped.");
        [self.navigationController popViewControllerAnimated:YES];

    }
    else if (buttonIndex == 1) {
        NSLog(@"GO tapped.");
        startDate = [NSDate date];
        // Create the stop watch timer that fires every 10 ms
        stopWatchTimer = [NSTimer 
                          scheduledTimerWithTimeInterval:1.0/10.0
                          target:self
                          selector:@selector(updateTimer)
                          userInfo:nil
                          repeats:YES];
    } else if (buttonIndex == 2) {
        NSLog(@"Scoreboard tapped.");
    }

}

popView 部分正在工作,应用程序导航回一个视图控制器。我不知道如何让应用程序向前移动一个视图控制器。我知道这与此有关,pushViewController但我只看过相当古老且相互矛盾的文章,详细说明了如何做到这一点。

我会很感激这方面的帮助,谢谢。

4

2 回答 2

6

您需要创建新的 UIViewController 然后将其推送到堆栈,如下所示:

else if (buttonIndex == 2) {
    NSLog(@"Scoreboard tapped.");
    MoreDetailViewController *ctrl = [[MoreDetailViewController alloc] initWithNibName:@"MoreDetailViewController" bundle:nil];

    [self.navigationController pushViewController:ctrl animated:YES];
}    

如果您使用 StoryBoard,则在情节提要文件(属性检查器)中为您的 UIViewController 提供标识符。 在此处输入图像描述

将此代码放入处理程序:

MoreDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MoreDetailViewController"];
[self.navigationController pushViewController:vc animated:YES];
于 2012-04-09T14:44:26.510 回答
2

只需调用以下命令:

[self.navigationController pushViewController:viewControllerToPush animated:YES];

如果您没有设置视图控制器,则需要以编程方式创建一个或使用头文件中的 IBOutlet 通过 Interface Builder 链接一个。

于 2012-04-09T14:44:12.513 回答