我想让视图控制器检查一些东西,如果它为真,它会允许用户使用视图控制器,如果它为假,它会向用户显示一个警告,并将用户送回他/她来自哪里。
所以我试着在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] finish up a导航转换处于意外状态。导航栏子视图
我从这个StackOverflow问题中了解到,在viewDidLoad
完成之前调用pushViewController
或popViewController
是不安全的。有什么办法可以解决这个问题吗?
TLDR:我正在尝试将视图控制器推到堆栈上,显示警报,然后将视图控制器弹出堆栈。
编辑:添加代码
如果您想显示警报,这应该相当容易。
1 -从viewDidAppear
内部调用[UIAlertView show]方法。建议使用viewDidAppear
,因为它将是视图生命周期中的最后一个,当视图控制器完全推送到堆栈上时。所以弹弹是无害的。
2 -在clickedButtonAtIndex委托方法中,调用popViewControllerAnimated
.