0

我对Xcode有点陌生。现在我正在创建一个view controller(显示模式),它显示一个表单供用户输入信息,然后单击“提交”提交信息。

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

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

当我测试它时,什么也没有发生。谁能告诉我我做错了什么。

4

3 回答 3

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
}
于 2013-04-24T19:28:31.883 回答
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];
    }
}
于 2014-12-08T10:29:03.157 回答
0

斯威夫特 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
    }
}
于 2019-06-13T17:39:43.643 回答