从UIAlertView启动新的ViewController

时间:2015-04-01 23:53:52

标签: ios objective-c uiviewcontroller segue

我想知道如何从UIAlertView启动一个新的ViewController。对我而言,似乎你无法以图形的方式连接viewControllers。

我在第一个viewController中设置了UIAlertView,如下所示:

UIAlertView *messageAlert = [[UIAlertView alloc]
                                 initWithTitle:@"Start New View Controller?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Yes",nil];

然后我像这样处理不同的按钮点击:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:    (NSInteger)buttonIndex{
if (buttonIndex == 0){
    NSLog(@"Cancel");
}
if (buttonIndex == 1){
    NSLog(@"Yes");
    }
}

如何使用此警告框启动第二个viewController(例如viewContoller2)?

1 个答案:

答案 0 :(得分:0)

您可以以常规方式启动视图控制器,也可以使用segue。对于segue,您可以执行以下操作:

if (buttonIndex == 1){
    [self performSegueWithIdentifier:@"SEGUE_IDENTIFIER" sender:self];
}

以及稍后在代码中,您以这种方式设置控制器:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"SEGUE_IDENTIFIER"]) {
        MyViewController *viewContoller2 = (MyViewController *)segue.destinationViewController;
        NSLog("viewContoller2 is ready for use");
    }
}

或没有segues,请执行:

if (buttonIndex == 1){
  MyViewController *viewContoller2 = [[MyViewController alloc] init];
  [self presentViewController:viewContoller2 animated:YES completion:nil];
}