ios - 弹出到根导航 Controller - Swift 3

标签 ios swift uinavigationcontroller

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

(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.

我想弹出到主导航 Controller 的 Root View Controller ,即我想从 F 转到 C 或 B。我已经提到了 this回答,并将其转换为 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

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

我正在使用 Xcode 8 和 Swift 3。

最佳答案

不要使用 sw.pushFrontViewController(VC, animated: true) 推送您的 tabBarVC 尝试使用 navigationController 的推送方法,

self.navigationController?.pushViewController(tabBarVC!, animated: true)

然后从 TableController 调用下面的方法去 HomeViewController,

func goToHomeNavVC(){
        //parent is TabBar Controller
        self.parent?.navigationController?.popToRootViewController(animated: true)
    }

这是一个Demo

关于ios - 弹出到根导航 Controller - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635602/

相关文章:

ios - 如何使用 UILabel 创建发光效果?

ios - 导航到新的 UINavigationController

objective-c - 如何将自定义 uibarbuttonItem 添加到所有 View Controller 中的导航项?

ios - 在自己的服务器和 iPhone 应用程序之间实现 Oauth

android - 创建与 native 库 .net Maui 的绑定(bind)

ios - UIScrollView 包含 CGRect 线图不滚动(Swift)

ios - 以编程方式推送 UINavigationController 后顶部栏不可见

objective-c - 每个按钮都有不同 View 的 UITableView

ios - 初始核心数据保存卡住应用程序

swift - 使用 readLine() 跳过行 - Swift 2.2