我在导航控制器上推动视图控制器(或设置视图控制器)时遇到问题。尽管有很多关于“开始/结束外观转换的不平衡调用”问题的问题,但我的问题有点独特。
我收到此警告的原因是因为我正在尝试推送或设置视图控制器,而另一个控制器已经处于转换状态。结果是没有看到最新的视图控制器,并且当前控制器没有按预期响应(似乎甚至已取消分配)。
我的导航控制器架构由具有导航控制器的主视图控制器组成。从这个视图控制器可以有“路径”(如主菜单),然后每个路径可以推送或弹出内部视图控制器或请求主控制器转到另一个分支(使用setViewControllers::
)。我相信这是一个非常标准的程序,一切都很好......
但是后来又有来自服务器的导航控制器的另一个输入。在某些特定情况下从服务器获取数据我想将额外的视图控制器推送到导航控制器。这也可以正常工作,但是如果用户已经触发推送或弹出当前视图控制器,并且如果我得到一个应该在转换完成之前推送额外视图控制器的响应,则所有内容都会如上所述中断。
所以到目前为止我最好的解决方法是创建一些锁定机制,以便此视图控制器等待其显示,直到所有转换完成。但目前这将是一项非常重要的任务:我无法使用委托,因为导航控制器委托是由于自定义转换而在某些控制器上动态设置的。
任何想法,想法和解决方案都将非常感激。