Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.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 Swift:弹出窗口和视图显示等_Ios_Swift_Uiviewcontroller_Popup - Fatal编程技术网

Ios Swift:弹出窗口和视图显示等

Ios Swift:弹出窗口和视图显示等,ios,swift,uiviewcontroller,popup,Ios,Swift,Uiviewcontroller,Popup,我是一个新手Swift程序员,希望在加载应用程序时(如果可能,甚至在显示主视图之前)立即弹出一个弹出窗口(在单独的视图/视图控制器中) 我使用下面的代码弹出 if let vc = storyboard?.instantiateViewController(withIdentifier: "PasswordPopUp") as? PasswordPopUp { vc.modalPresentationStyle = .overCurrentContext present(vc,

我是一个新手Swift程序员,希望在加载应用程序时(如果可能,甚至在显示主视图之前)立即弹出一个弹出窗口(在单独的视图/视图控制器中)

我使用下面的代码弹出

if let vc = storyboard?.instantiateViewController(withIdentifier: "PasswordPopUp") as? PasswordPopUp {
    vc.modalPresentationStyle = .overCurrentContext
    present(vc, animated: true, completion: {
        //self.cleanP2action()
    })
} else {
    print("error creating PasswordPopUp")
}
例如,如果我通过单击一个按钮来使用它,它就可以正常工作。但我希望它能自动发生。当我将代码添加到viewDidLoad时,我得到一个错误消息

警告:试图在上显示
其视图不在 窗口层次结构

我试着把它放在ViewDidEmbeen中,但它似乎没有被调用。以下是主视图控制器的要点:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

有什么问题以及如何修复?

首先,您不能在
viewDidLoad
方法中显示或弹出另一个视图。我认为错误信息非常清楚。尝试在父VC完成之前显示。但它应该在父视图的
viewdide
方法中工作。你所说的“似乎没有被调用”是指ViewDidDisplay中的代码没有执行。如果你希望它发生在主视图之外,那么你应该考虑将代码包含在AppDelegate中,但是你需要在执行之前显示一些内容,因为没有任何类型的“主”视图,你的应用程序无法运行。此外,ViewDidAspect应该正在执行,因此那里的代码中一定存在某种错误。ViewDidAspect无法运行的常见错误/原因是什么?只是一个想法,但听起来您需要一个登录屏幕。为什么不将初始视图控制器作为登录屏幕,然后从那里切换到主屏幕?