按下取消时显示警报视图并停留在同一视图控制器上

时间:2013-06-13 13:14:43

标签: iphone ios objective-c xcode storyboard

我正在使用故事板,其中2个视图控制器使用segue相互连接。在第一个视图控制器上有一个按钮,如果单击该按钮,它将转到第二个视图控制器。问题是我想弹出警报视图,我试图在- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法中显示警报视图,但问题是它转到第二个视图控制器,然后弹出警报视图。我希望它在第一个视图控制器上弹出,如果你从警报视图中按下取消按钮,它仍然保留在第一个视图控制器上。知道我怎么能这样做吗?

2 个答案:

答案 0 :(得分:2)

您需要在按钮点击时显示警报,并充当警报的代理人。只有当你得到警告完成委托回调(alertView:willDismissWithButtonIndex :)时,你才能决定是否应该触发segue或什么都不做。

答案 1 :(得分:1)

为此,您需要执行以下操作:

  • 从故事板上的按钮中删除segues。
  • 为该按钮实施IBAction并在那里显示提醒
  • 使用clickedButtonAtIndex的{​​{1}}委托方法检查按下的按钮。如果用户按确定转到下一个视图

添加UIAlertView之类的:

IBAction

并实现委托方法,如:

- (IBAction)showAlert:(id)sender
{
   UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Can I Move ?"
                                                  message:nil
                                                 delegate:self
                                        cancelButtonTitle:@"OK"
                                        otherButtonTitles:@"Cancel",nil];
   [message show];
}

注意:您也可以使用performSegueWithIdentifier移至下一个视图