我正在尝试使用以下代码以编程方式推送到其他viewcontroller:
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController") as! MenuController
self.navigationController?.pushViewController(loginVC, animated: true)
这是我的设置:我有一个名为:MenuController
的快速文件,其中包含以下代码:我将标识符名称设置为:LoginViewController
我将两个ViewControllers
的类都设置为{{ 1}}。但是,每当我按下按钮触发事件时,它都不会执行任何操作。
这是我要求的其余代码:
MenuController
我知道代码中的其他所有内容都可以正常工作,因为它可以打印消息。
答案 0 :(得分:1)
您需要从NavigationController内部插入执行vc的
self.navigationController?
是nil
或通过编程方式完成
编辑:
替换此
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController") as! MenuController
self.navigationController?.pushViewController(loginVC, animated: true)
使用
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController") as! MenuController
let nav = UINavigationController(rootViewController:self)
(UIApplication.shared.delegate as! AppDelegate).window!.rootViewController = nav
nav.pushViewController(loginVC, animated: true)
答案 1 :(得分:0)
我认为您的视图控制器不在Navigation Stack
中,这就是为什么它没有推送到下一个视图控制器的原因
let nextVC = self.storyboard?.instantiateViewController(withIdentifier: “nextvc”) as! nextvc
let navigation = UINavigationController(rootViewController:self)
UIAppliaction.window!.rootViewController = navigation
navigation.pushViewController(nextVC, animated: true)