更改视图控制器时,会出现新控制器,但几乎立即消失

时间:2016-10-01 18:40:25

标签: ios swift

我在我的一个IBAction中有这个代码(当按下一个按钮时),这应该会调出一个新的视图控制器。

let addAlertVC = self.storyboard?.instantiateViewController(withIdentifier: "addAlert")

self.present(addAlertVC!, animated: false, completion: nil)

然而,当我运行应用程序并按下应该将我带到新viewcontroller的按钮时,我却停留在原来的viewcontroller上。我在新视图控制器的viewDidAppear函数中放了一个print语句,只要按下按钮就打印出来,所以新的控制器肯定会出现。我没有在我的应用程序的任何地方解雇新控制器。

我在我的应用的其他部分使用了相同的代码,所以我非常困惑为什么它这次不能正常工作。

非常感谢任何帮助。

编辑:我修复了我的代码。事实证明,我不是如何调用视图控制器错误的,这是我的按钮。删除并重新添加按钮后,我的代码现在可以正常工作。

1 个答案:

答案 0 :(得分:1)

您的视图控制器很有可能在您出现后取消分配。

尝试在控制器中的函数外声明视图控制器。类似的东西:

class ViewController{

    var addAlertVC:UIViewController?

    ...

    func someFunction(){
        addAlertVC = self.storyboard?.instantiateViewController(withIdentifier: "addAlert")

        self.present(addAlertVC!, animated: false, completion: nil)
    }

}