我正在使用Storyboard并在满足某个条件时尝试返回上一个屏幕。 IE,登录时找不到用户名。
基本上,用户输入他们的信息并按下按钮。如果信息不正确或找不到,我会显示UIAlertView消息,通知他们不正确的信息。由于订单已完成,因此在我使用服务器检查任何数据之前,按下按钮会发生屏幕转换。所以我在检查之前无法暂停屏幕更改。
我正在检查用户按下UIAlertView中的按钮,以便使用此方法返回信号。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
[self.navigationController popViewControllerAnimated:YES];
}
我正在尝试使用该方法中的一行返回上一个屏幕,但没有任何反应。我假设故事板的工作方式不同,但我不知道用它们返回上一个屏幕的语法。
感谢。
答案 0 :(得分:1)
如果您的故事板推送视图控制器,那么您始终可以以编程方式弹出它。这不是问题。这里的问题是UIAlertView是使用动画显示的,因此你不能一次性执行另一个动画。
所以你有两个选择。在没有动画的情况下弹出视图控制器应该可以工作但是用户可能没有意识到他到达的位置。
你可以将弹出viewcontroller的调用放入一个helper方法,并像这样调用这个方法:[self performSelector:@selector(myPopHelperMethod:) withObject:nil afterDelay:0.8f]
。这应该在0.8秒后弹出你的视图控制器,这足以让UIAlertView完成它的动画。
答案 1 :(得分:0)
我猜你的self.navigationController
是零,这使你的方法成为无操作。