弹出到根导航控制器 - Swift 3

Dia*_*Dia 3 uinavigationcontroller ios swift

我有多个导航控制器。它们的放置方式如下:

(A)SWRevealViewController
       (B)Navigation Controller(sw_front) 
            (C)HomeViewController (root view controller)
                  (D)TabBarController -->
                            (E)Navigation Controller 1--> 
                                 (F)TableController 1 -->
                                 (F)TableController 2.
                            (E)Navigation Controller 2--> 
                                 (F)TableController 1 -->
                                 (F)TableController 2.
Run Code Online (Sandbox Code Playgroud)

我想弹出到主导航控制器的根视图控制器,即我想从 F 转到 C 或 B。我参考了这个答案,并将其转换为 swift 如下:

let appdel: AppDelegate = UIApplication.shared.delegate as! AppDelegate
    let mainwindow : UIWindow = appdel.window!
    let vcObj : HomeViewController = HomeViewController()
    let navObj : UINavigationController = UINavigationController(rootViewController: vcObj)
    mainwindow.rootViewController = navObj
Run Code Online (Sandbox Code Playgroud)

但它只显示一个空白的黑屏。请任何人都可以帮忙。

我正在使用 Xcode 8 和 Swift 3。

Zai*_*han 5

而不是推动你tabBarVCusing sw.pushFrontViewController(VC, animated: true)try usingnavigationController的 push 方法,

self.navigationController?.pushViewController(tabBarVC!, animated: true)
Run Code Online (Sandbox Code Playgroud)

然后从 TableController 调用以下转到HomeViewController

func goToHomeNavVC(){
        //parent is TabBar Controller
        self.parent?.navigationController?.popToRootViewController(animated: true)
    }
Run Code Online (Sandbox Code Playgroud)

这是一个演示