我希望视图控制器检查某些内容,如果它是真的,它将允许用户使用视图控制器,如果它是假的,它将向用户显示警告并将用户发送回他/她来自的位置
所以我尝试将其添加到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
完成之前调用popViewController
或viewDidLoad
是不安全的。有没有办法解决这个问题?
TLDR:我正在尝试将视图控制器推入堆栈,显示警报,然后将视图控制器从堆栈中弹出。
编辑:添加了代码。
答案 0 :(得分:2)
如果您想要显示警报,这应该相当容易。
1 - 从viewDidAppear
内调用[UIAlertView show]方法。建议在视图生命周期中使用viewDidAppear
,因为视图控制器完全被推入堆栈。因此弹出将是无害的。
2 - 在clickedButtonAtIndex委托方法中,请致电popViewControllerAnimated
。