我正在处理一些我没有编写的旧代码,但实际上不是很好的架构...
情况是,视图控制器会形态地呈现自定义视图控制器,但是每30秒重新创建了一次呈现视图控制器。
这里的问题是,如果发生这种情况时模态在屏幕上,那么任何努力都会删除它会导致奇怪的行为(例如白屏)。
我尝试在新重新创建的控制器上调用[self.presentedViewController dismissViewControllerAnimated];
,但是presentedViewController
是您所期望的。
我还尝试了对模态视图控制器的弱参考,然后在重新加载呈现的VC时,将此值设置为旧VC的值。这使我能够致电self.customModalVC dismissViewControllerAnimated];
,但这引起了上述白屏,也许是因为它不再在堆栈中呈现VC?
所有建议都赞赏。
尝试将导航控制器传递到新呈现的ViewController:
presentedVC.navigation = self.navigationController
将其添加到新创建的
新创建 self.dismiss(animated: false) {
_ = self.navigation?.popViewController(animated: true)
}