繁体   English   中英

以编程方式将NavigationController添加到指定viewController中,而无需故事板快速

[英]Add navigationController to specif viewController programmatically without storyboard swift

例如,我只想为HomeViewController添加navigationController 我知道如何从AppDelegate做到这一点,如下所示

let navBar = UINavigationController(rootViewController: homeViewController())
self.present(navBar, animated: true, completion: nil)

我还有另一种方法可以在viewDidLoadviewWillAppear添加navigationController吗?

编辑:

我的逻辑是当我按下下面的代码登录按钮时。 然后将显示SWRevealViewController

@IBAction func loginPressed(_ sender: Any) {    
    let frontViewController = HomeViewController()
    let rearViewController  = TableViewController()
    let swRevealVC = SWRevealViewController(rearViewController: rearViewController, frontViewController: frontViewController)
    swRevealVC?.toggleAnimationType = SWRevealToggleAnimationType.easeOut
    swRevealVC?.toggleAnimationDuration = 0.30

    self.present(swRevealVC!, animated: true, completion: nil)
}

我只想将navigationController设置为HomeViewController

看下面的代码希望它对您有用...

这将在App委托中

if UserDefaults.standard.bool(forKey: REMEMBER_ME) {
   let menuVC = UINavigationController(rootViewController: SideMenuViewController())
   let loginVC = UINavigationController(rootViewController: DashboardViewController())
   let revealViewController = SWRevealViewController(rearViewController: menuVC, frontViewController: loginVC)
   self.navigationController?.navigationBar.isHidden = true
   window?.rootViewController = revealViewController
} else {
   window?.rootViewController = LoginViewController()
}

这将在您的登录操作中

if let window = UIApplication.shared.keyWindow {
    let menuVC = UINavigationController(rootViewController: SideMenuViewController())
    let loginVC = UINavigationController(rootViewController: DashboardViewController())
    let revealViewController = SWRevealViewController(rearViewController: menuVC, frontViewController: loginVC)
    self.navigationController?.navigationBar.isHidden = true
    window.rootViewController = revealViewController
}

更换

let frontViewController = HomeViewController()

let frontViewController = UINavigationController(rootViewController: HomeViewController())

它会工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM