Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 导航控制器popToRootController(),后跟推送控制器UI错误_Ios_Swift - Fatal编程技术网

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

Ios 导航控制器popToRootController(),后跟推送控制器UI错误,ios,swift,Ios,Swift,在我的应用程序中,我目前正在调用navigationController.popToRootController(),然后立即将几个控制器推到堆栈上,但这会导致一个奇怪的UI错误。新的控制器不是从左侧出现,而是从下到上出现,奇怪的是屏幕顶部的导航栏完全消失了。无法向后导航,无法与任何导航项交互。。。刚刚走了。想知道这是否与弹出根控制器有关,然后立即尝试推送可能导致此奇怪错误的新控制器。希望有人对此有所了解。谢谢 文件列表是一个导航控制器 fileList.popToRootController(

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

文件列表是一个导航控制器

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

如果要更改viewControllers(如此pop),然后进行推送,最好像这样重新设置
viewControllers
属性,故障可能是因为pop和推送都已设置为true,因此会发生干扰

self.navigationController?.viewControllers = []
或者用动画

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

请在您的问题中发布相关代码(作为文本)。添加相关代码,推断相关功能,代码经过许多循环,turnsI不会这样做。我只需要修改
viewControllers
数组来添加控制器。您还可以尝试推送的
dispatchAsync
,以便在下一次运行循环迭代时发生。如果将动画属性设置为true,则推送新控制器?如果将数组设置为nil,则会弹出根,但这不是我要的。popToRootController()应将根保留在数组上否?根位于索引0处,创建一个数组仅保留索引为0处的viewController,将要推送的其他VCS附加到该数组中,然后将此新数组设置为SetViewController