2

我正在使用 Storyboard 并尝试在满足特定条件时返回到前一个屏幕。IE,登录时找不到用户名。

本质上,用户输入他们的信息并按下按钮。如果信息不正确或找不到,我会显示一条 UIAlertView 消息以通知他们不正确的信息。由于事情完成的顺序,屏幕转换发生在我与服务器检查任何数据之前按下按钮。所以在我检查之前我不能停止换屏。

我正在检查用户在 UIAlertView 中按下的按钮是否有信号以使用此方法返回..

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   [self.navigationController popViewControllerAnimated:YES];

}

我正在尝试使用该方法中的一行返回到前一个屏幕,但没有任何反应。我假设故事板的工作方式不同,但我不知道使用它们返回上一个屏幕的语法。

谢谢。

4

2 回答 2

1

如果您的故事板推送一个视图控制器,那么您总是可以以编程方式弹出它。这不是问题。这里的问题是 UIAlertView 使用动画显示,因此您不能一次执行另一个动画。

  1. 所以你有两个选择。弹出没有动画的视图控制器应该可以工作,但是用户可能没有意识到他要去哪里。

  2. 您可以将弹出视图控制器的调用放入辅助方法中,并像这样调用此方法[self performSelector:@selector(myPopHelperMethod:) withObject:nil afterDelay:0.8f]:这应该会在 0.8 秒后弹出您的视图控制器,这足以让 UIAlertView 完成其动画。

于 2011-12-12T22:11:38.227 回答
0

我猜你self.navigationController是 nil,这使你的方法成为空操作。

于 2011-12-13T09:47:05.497 回答