Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 推动viewController时未调用viewDidLoad_Ios_Swift_Uinavigationcontroller_Pushviewcontroller_Viewdidload - Fatal编程技术网

Ios 推动viewController时未调用viewDidLoad

Ios 推动viewController时未调用viewDidLoad,ios,swift,uinavigationcontroller,pushviewcontroller,viewdidload,Ios,Swift,Uinavigationcontroller,Pushviewcontroller,Viewdidload,这里我试图通过单击按钮导航到另一个viewController 它正在导航到下一个viewController,但viewDidLoad()没有在此处调用 下面是我编写的代码,通过单击按钮导航到另一个viewController @IBAction func nextButtonClicked(_ sender: Any) { let OrdersVC = self.storyboard?.instantiateViewController(withIdentifier: “LoginV

这里我试图通过单击按钮导航到另一个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(我需要导航)

在这里,我可以进入这个类,但是它本身没有调用

我应该如何做到这一点

[![这是我的故事板][1][1]


您的问题是,该VC的IB中没有解决该类问题;确保加载的类和脚本ID与要加载的类匹配。例如,要加载:

  let OrdersVC = self.storyboard?.instantiateViewController(withIdentifier: “secondID") as! secondViewController
self.navigationController?.pushViewController(OrdersVC, animated: true)
图片:


您的问题是,该VC的IB中没有解决该类问题;确保加载的类和脚本ID与要加载的类匹配。例如,要加载:

  let OrdersVC = self.storyboard?.instantiateViewController(withIdentifier: “secondID") as! secondViewController
self.navigationController?.pushViewController(OrdersVC, animated: true)
图片:


当我看到你的问题时,我想到两件事:

  • 检查
    nextButtonClicked
    方法是否连接到按钮(那里的代码看起来正常,因此可能只是没有执行)

  • 检查您正在谈论的
    viewdiload
    是否真的在您实例化的
    LoginViewController
    中(我希望您正在测试通过在
    super.viewdiload()
    上设置断点来调用
    viewdiload


  • 看到你的问题,我想到两件事:

  • 检查
    nextButtonClicked
    方法是否连接到按钮(那里的代码看起来正常,因此可能只是没有执行)

  • 检查您正在谈论的
    viewdiload
    是否真的在您实例化的
    LoginViewController
    中(我希望您正在测试通过在
    super.viewdiload()
    上设置断点来调用
    viewdiload


  • 只需在推送代码之间写下以下行

    @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)
    }
    

    只需在推送代码之间写下以下行

    @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)
    }
    

    当您从故事板实例化ViewController时使用的标识符不正确时,通常会发生这种情况。例如

    [[self-getStoryboard]实例化eviewcontrollerwhidentifier:MyVC]


    如果
    MyVC
    是某个其他ViewController的标识符,则可能会发生这种情况。

    从情节提要实例化ViewController所用的标识符不正确时,通常会发生这种情况。例如

    [[self-getStoryboard]实例化eviewcontrollerwhidentifier:MyVC]


    如果
    MyVC
    是某个其他ViewController的标识符,则可能会发生这种情况。

    那么您告诉我们您在故事板中至少有两个ViewController,第一个是导航控制器中的root,您调用了push 2 vc,但没有获得viewDidload?你们至少看到了过渡吗?你们能解释一下你们是如何构造视图控制器的吗?发布你的故事板截图?@tereks,是的,我正在使用2个以上的ViewController。第一个视图控制器是根视图控制器。我将第一视图控制器嵌入到导航控制器中。是的,我能看到过渡。我在viewController 2中获取的引用正在调用。但在viewdidload()中,情况并非如此getting@SuganyaMarlin. 我还使用了viewwillappease()。也没有调用它。将调用viewDidLoad()。显示你的故事板所以你告诉我们你在故事板中至少有2个ViewController,第一个是导航控制器中的根,你调用push 2 vc,但没有得到viewDidload?你们至少看到了过渡吗?你们能解释一下你们是如何构造视图控制器的吗?发布你的故事板截图?@tereks,是的,我正在使用2个以上的ViewController。第一个视图控制器是根视图控制器。我将第一视图控制器嵌入到导航控制器中。是的,我能看到过渡。我在viewController 2中获取的引用正在调用。但在viewdidload()中,情况并非如此getting@SuganyaMarlin. 我还使用了viewwillappease()。也没有调用它。将调用viewDidLoad()。显示您的故事板我只提供了正确的标识符。见我编辑的问题。在那里你可以找到我的故事板截图和身份检查器你可以发送一个演示这个问题我只给出了正确的标识符。见我编辑的问题。在那里你可以找到我的带有身份检查器的故事板截图,或者你可以发送一个这个问题的演示,下一个按钮点击连接。点击按钮后,它也会进入按钮动作。nextButtonClicked已连接。点击按钮后,它也会进入按钮动作。写下这行,现在viewDidLoad正在调用。但它并不是导航到下一个viewController。它仅保留在第1个viewController中。现在viewDidLoad正在调用该行。但它并不是导航到下一个viewController。它仅保留在第一视图控制器中