0

我试图在用户单击带有警告的按钮时出现一个弹出窗口,如果他们单击取消,它将被关闭,但如果他们单击继续,我希望它显示视图控制器。这是我的代码,但无论我按下哪个按钮,它都只会关闭弹出窗口:

- (IBAction)latest:(id)sender {
    alert = [[UIAlertView alloc] initWithTitle:@"WARNING" message:@"Continuing will use internet and may cause app to slow down in large crowds" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Continue", nil];
    [alert show];
}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 2) {
        UIViewController *NVC = [self.storyboard instantiateViewControllerWithIdentifier:@"Latest"];
        [self presentViewController:NVC animated:YES completion:Nil];
    }
}
4

3 回答 3

0

您只有 2 个选项可供单击。索引从 0 而不是 1 开始,所以if (buttonIndex == 2)改为if (buttonIndex == 1)

于 2013-07-20T01:59:20.033 回答
0

您的问题很简单-您需要self作为警报视图的委托传递,而不是nil.

此外,在您的委托方法中,不要对按钮索引进行硬编码。改为这样做:

if (buttonIndex == alertView.firstOtherButtonIndex) {
}
于 2013-07-20T02:04:21.090 回答
0

好的,我想通了。我必须将委托设置为 self,它设置为“nil”。

于 2013-07-20T02:05:23.963 回答