这里我试图通过单击按钮导航到另一个viewController。
它导航到下一个viewController,但viewDidLoad()
没有在这里调用
这是我编写的用于在单击按钮时导航到另一个viewController的代码
@IBAction func nextButtonClicked(_ sender: Any) {
let OrdersVC = self.storyboard?.instantiateViewController(withIdentifier: “LoginViewController") as! LoginViewController
self.navigationController?.pushViewController(OrdersVC, animated: true)
}
这是我的viewController(我需要导航)
@IBOutlet weak var activeButton: UIButton!
@IBOutlet weak var upcomingButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
我可以进入课堂,但viewDidLoad()
本身并没有打电话。
我该如何实现这个目标?
[![这是我的故事板] [1]] [1]
答案 0 :(得分:2)
你的问题是这个VC的班级没有在IB中解决;确保您加载的课程和故事板ID与您要加载的课程相匹配。例如,要加载:
let OrdersVC = self.storyboard?.instantiateViewController(withIdentifier: “secondID") as! secondViewController
self.navigationController?.pushViewController(OrdersVC, animated: true)
图像:
答案 1 :(得分:0)
在查看你的问题时,我想到了两件事:
检查viewDidLoad
方法是否已连接到按钮(代码看起来没问题,所以可能没有执行)。
检查您所说的LoginViewController
是否真的在您实例化的viewDidLoad
中(我希望您通过设置一个来测试super.viewDidLoad()
被调用的事实i.icon-back {
background-color: $fg-color;
mask-image: url('data:image/svg…');
}
上的断点。
答案 2 :(得分:0)
只需在推送代码
之间写下一行代码@IBAction func nextButtonClicked(_ sender: Any) {
let OrdersVC = self.storyboard?.instantiateViewController(withIdentifier: “LoginViewController") as! LoginViewController
_ = OrdersVC.view // write this line
self.navigationController?.pushViewController(OrdersVC, animated: true)
}
答案 3 :(得分:0)
当从情节提要中实例化ViewController的标识符不正确时,通常会发生这种情况。例如
[[self getStoryboard] instantiateViewControllerWithIdentifier:MyVC];
如果MyVC
是其他ViewController的标识符,则可能会发生这种情况。