使用UI警报视图按钮关闭模态视图控制器

时间:2013-04-24 19:24:26

标签: ios objective-c xcode uialertview

我是 Xcode 的新手。现在我正在创建一个view controller(以模态显示),它显示一个供用户输入信息的表单,然后单击“提交”以提交信息。

我创建了IBAction,并实施了UIAlerView,通知用户信息已发送。我希望警报视图中的“确定”按钮将它们带回原始视图控制器。我设置了我的Alert View delegate并在我的.m文件中实现了以下方法:

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex

当我测试时,没有任何反应。谁能告诉我我做错了什么。

3 个答案:

答案 0 :(得分:1)

您需要实施- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex委托方法---

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    //dissmiss here
    //Pre iOS 6.0
    [self dismissModalViewControllerAnimated:YES];

    //From iOS 5.0
    [self dismissViewControllerAnimated:YES completion:nil];
}

您还可以检查点按的按钮

if(buttonIndex != [alertView cancelButtonIndex]) {
    //do something
}

答案 1 :(得分:0)

您需要实现下面提到的UIAlertView的委托方法:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
    if ([buttonTitle isEqual:@"Ok"]) // Check for Ok button
    {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
}

答案 2 :(得分:0)

SWIFT 5

自swift 3起我就离开了Xcode,需要在我的新项目中这样做。下面的代码对我有用(显示警报,并在关闭警报后,将用户带回到上一个视图控制器):

func displayAlert() {
    let alert = UIAlertController(title: "Your Title",
                                  message: "Your Message",
                                  preferredStyle: .alert)
    let defaultButton = UIAlertAction(title: "OK",
                                      style: .default) {(_) in
                                        // your defaultButton action goes here
                                        self.dismiss(animated: true, completion: nil)
    }

    alert.addAction(defaultButton)
    present(alert, animated: true) {
        // completion goes here
    }
}