首页 文章

为popToRootViewController swift 4分配自定义目标

提问于
浏览
0

我使用navigationController?.popToRootViewController(animated:true)将我当前的视图关闭到上一个视图 . 我的视图控制器关系看起来像这样 .

VC1->VC2
VC1->VC3
VC3->VC2

每当客户端在VC2中时,我想将导航控制器弹回VC1 . 当rootviewcontroller设置为VC1时,这可以正常工作 . 但是,当客户端使用来自VC3的segue进入VC2时,rootviewcontroller设置为VC3,导航控制器弹出到VC3 .

我试着像这样改变rootviewcontroller .

// set root view controller
    let appdelegate = UIApplication.shared.delegate as! AppDelegate
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let VC1 = mainStoryboard.instantiateViewController(withIdentifier: "VC1") as! FirstViewController
    appdelegate.window!.rootViewController = VC1
    navigationController?.popToRootViewController(animated: true)

但是,即使在执行“navigationController?.popToRootViewController(animated:true)”行之前,这实际上也会将viewcontroller返回到根视图控制器(VC1),因此没有动画 .

有没有办法设置导航控制器的rootviewcontroller而不立即呈现根视图控制器?

1 回答

  • 0

    如果你把 appdelegate.window!.rootViewController = VC1 ,控制器堆已经死了,你只在堆栈中有一个单独的控制器,因此你不能应用 popToRootViewController .

    如果这是您需要的导航,也许,这post可以帮助您:
    enter image description here

相关问题