推动后立即弹出视图控制器

时间:2014-08-09 19:34:38

标签: ios uinavigationcontroller viewdidload popviewcontroller

我希望视图控制器检查某些内容,如果它是真的,它将允许用户使用视图控制器,如果它是假的,它将向用户显示警告并将用户发送回他/她来自的位置

所以我尝试将其添加到viewDidLoad末尾的if语句中:

[self.navigationController popViewControllerAnimated:YES]

然而,我收到了错误:

  

2014-08-09 20:12:59.731 ProjectName [1978:60b]嵌套的流行动画可以   导致导航栏损坏

     

2014-08-09 20:13:00.118 ProjectName [1978:60b]完成a   导航转换处于意外状态。导航栏子视图   树可能会被破坏。

我从this StackOverflow question了解到,在pushViewController完成之前调用popViewControllerviewDidLoad是不安全的。有没有办法解决这个问题?

TLDR:我正在尝试将视图控制器推入堆栈,显示警报,然后将视图控制器从堆栈中弹出。

编辑:添加了代码。

1 个答案:

答案 0 :(得分:2)

如果您想要显示警报,这应该相当容易。

1 - 从viewDidAppear内调用[UIAlertView show]方法。建议在视图生命周期中使用viewDidAppear,因为视图控制器完全被推入堆栈。因此弹出将是无害的。

2 - 在clickedButtonAtIndex委托方法中,请致电popViewControllerAnimated