我是 Xcode 的新手。现在我正在创建一个view controller
(以模态显示),它显示一个供用户输入信息的表单,然后单击“提交”以提交信息。
我创建了IBAction
,并实施了UIAlerView
,通知用户信息已发送。我希望警报视图中的“确定”按钮将它们带回原始视图控制器。我设置了我的Alert View delegate
并在我的.m文件中实现了以下方法:
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
当我测试时,没有任何反应。谁能告诉我我做错了什么。
答案 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
}
}