【iOS12+Swift5+Xcode10】如何在界面刚出现的时候弹出另一个界面

726 阅读1分钟

一般大家会这么做:

override func viewDidLoad() {
    super.viewDidLoad()

    present(xxViewController, animated: true, completion: nil)
        
}

但是这样并不能弹出界面,并且在Xcode里会出现以下警告:

Attempt to present xxViewController on xxx whose view is not in the window hierarchy!

因为在viewDidLoad的时候所有的视图都还没有进入视图层级(也就是还没造出来)

我们从viewDidLoad的字面上也能得知,他只是一个加载的意思。

所以必须等视图都准备好之后我们才能进行弹出界面的操作。

视图什么时候都准备好呢?

viewDidAppear 的时候

所以应该这样写:

override func viewDidAppear(_ animated: Bool) {
	super.viewDidAppear(animated)
	present(xxViewController, animated: true, completion: nil)
}

 

广告时间:

这里是我的一些iOS视频教程,希望大家多多支持一下:

m.cctalk.com/inst/s9vfhe…