一般大家会这么做:
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视频教程,希望大家多多支持一下: