1

我希望视图控制器检查一些东西,如果它是真的,它将允许用户使用视图控制器,如果它是假的,它将向用户显示警报并将用户发送回他/她来自的地方。

因此,我尝试将其添加到末尾的 if 语句中viewDidLoad

[self.navigationController popViewControllerAnimated:YES]

但是,我得到了错误:

2014-08-09 20:12:59.731 ProjectName[1978:60b] 嵌套弹出动画可能导致导航栏损坏

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

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

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

编辑:添加代码。

4

1 回答 1

2

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

1 - 从内部调用[UIAlertView show]方法viewDidAppear。当视图控制器完全压入堆栈时,建议使用viewDidAppear它,因为它将是视图生命周期中的最后一个。所以弹出是无害的。

2 - 在clickedButtonAtIndex委托方法中,调用popViewControllerAnimated.

于 2014-08-09T19:46:41.580 回答