Swift:当前视图控制器在转换到下一个视图控制器期间重新显示

Posted

技术标签:

【中文标题】Swift:当前视图控制器在转换到下一个视图控制器期间重新显示【英文标题】:Swift: Current View Controller is re-displayed during transition to the next View Controller 【发布时间】:2018-11-13 16:10:41 【问题描述】:

当我从视图控制器 A 调用视图控制器 B (ProfileController) 时,使用 self.present(navControllerProfile, animated: false, completion: nil),视图控制器 A 在切换到 B 之前再次快速显示。我使用相同的代码从视图控制器 A 调用其他视图控制器并且过渡效果很好,只有过渡到 B 才会出现这个“错误”。有没有人提出过类似的问题并设法解决它?谢谢。

if self.view?.window == nil 
    self.window = UIWindow(frame: UIScreen.main.bounds)

self.view.window?.layer.add(self.transition, forKey: kCATransition)
if let profileInstantiated = self.storyboard!.instantiateViewController(withIdentifier: "ProfileController") as? ProfileController
    let navControllerProfile = UINavigationController(rootViewController: profileInstantiated)
    //Transition with "bug" bellow
    self.present(navControllerProfile, animated:false, completion: nil)

【问题讨论】:

【参考方案1】:

经过多次测试,无法检测到问题的原因,我终于解决了这个bug,应用了HotJard在这个链接中提出的解决方案:How to present view controller from right to left in ios using Swift

【讨论】:

以上是关于Swift:当前视图控制器在转换到下一个视图控制器期间重新显示的主要内容,如果未能解决你的问题,请参考以下文章

在转到下一个视图控制器(Swift)之前进行异步调用

将图像转移到下一个 ViewController (Swift)

在呈现新视图控制器后关闭当前视图控制器 - swift

Swift - 手动转换后关闭最后一个视图控制器

如何在使用当前模式打开另一个视图控制器后设置导航项的标题 - Swift

无法连接页面视图控制器上的按钮并使用按钮滑动到下一个屏幕