导航控制器popToRootController()后跟推送控制器UI错误

时间:2018-06-06 21:43:05

标签: ios swift

在我的应用程序中,我正在调用navigationController.popToRootController(),然后立即将几个控制器推入堆栈,但这会导致一个奇怪的UI错误。而不是从左侧出现,呈现的新控制器从下往上显示,而奇怪的是屏幕顶部的导航栏完全消失。无法导航回来,无法与任何导航项交互......刚刚走了。想知道它是否与弹出到根控制器有关,然后立即尝试推送可能导致这个奇怪的错误的新控制器。希望有人能够深入了解这一点。谢谢!

fileList是一个导航控制器

fileList.popToRootController()
fileList.clearList()
var isRoot = true
for file in (deepLinkFolder?.fileList)! {
    // push file controller onto navigation controller (fileList)
}

1 个答案:

答案 0 :(得分:1)

如果你想改变像这样的popControllers然后按下它最好重新设置这样的viewControllers属性,那么毛刺可能是因为pop和push都有动画设置为true所以干扰发生了

self.navigationController?.viewControllers = []

或使用动画

self.navigationController?.setViewControllers([],animated:true)