[英]Add navigationController to specif viewController programmatically without storyboard swift
I want to add navigationController
to just only for HomeViewController
for example. 例如,我只想为
HomeViewController
添加navigationController
。 I know how to do it from AppDelegate
and like this below 我知道如何从
AppDelegate
做到这一点,如下所示
let navBar = UINavigationController(rootViewController: homeViewController())
self.present(navBar, animated: true, completion: nil)
Is there another way that I can add navigationController
inside viewDidLoad
and viewWillAppear
? 我还有另一种方法可以在
viewDidLoad
和viewWillAppear
添加navigationController
吗?
Edited: 编辑:
My logic is when I pressed Login button which is the code below. 我的逻辑是当我按下下面的代码登录按钮时。 Then it will present
SWRevealViewController
然后将显示
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)
}
I just only want to set navigationController
to HomeViewController
我只想将
navigationController
设置为HomeViewController
Look below code hope it works for you... 看下面的代码希望它对您有用...
This will be in App delegate 这将在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()
}
This will be in your login action 这将在您的登录操作中
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
}
Replace 更换
let frontViewController = HomeViewController()
with 与
let frontViewController = UINavigationController(rootViewController: HomeViewController())
and it will work. 它会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.