我正在研究一些我没写过的旧代码,而且它的构造效果还不错......
情况是视图控制器以模态方式呈现自定义视图控制器,但是每30秒重新创建一个呈现视图控制器。
这里的问题是,如果发生这种情况时模式在屏幕上,那么任何解雇它的努力都会导致奇怪的行为(例如白屏)。
我尝试在新重新创建的控制器上调用[self.presentedViewController dismissViewControllerAnimated];
,但presentedViewController
为零,正如您所期望的那样。
我还尝试保留对模态视图控制器的弱引用,然后在重新加载呈现VC时,将该值设置为旧VC的值。这让我可以调用self.customModalVC dismissViewControllerAnimated];
,但是这会导致前面提到的白屏,也许是因为它呈现的VC不再存在于堆栈中?
赞赏任何建议。
答案 0 :(得分:-1)
尝试将导航控制器传递给新呈现的ViewController:
presentedVC.navigation = self.navigationController
将此添加到新创建的解除
self.dismiss(animated: false) {
_ = self.navigation?.popViewController(animated: true)
}
答案 1 :(得分:-1)
我认为你应该首先得到视图控制器,它将在堆栈视图层次结构上最后一次并在他身上调用dismiss
然后删除作为父级的控制器
how to get top controller see here