我有故事板和XIB VCs。只要体验一下:
UIScreen.main().bounds
.
更深入地说,当从情节提要初始化时,视图似乎获得了属性
view.window != nil
window == nil
. 也许这就是奇怪尺寸的原因。
我试图手动设置如下:
vc.view.frame = UIScreen.main.bounds
,并且有效。然而,这也会触发
viewDidLoad
在那里,我对我的内容进行了一些设置,而当时的IBOutlet还没有加载,每个设置都是错误的!
因此,提出了一个额外的问题:如何在从XIB初始化后强制加载IBMoutlet?
import MFSideMenu
...
// initialize from somewhere else and push it to menu.containerVC.centerVC
let vc = MyVC.init(nibName:MyVC.className, bundle:self.nibBundle)
...
// This method is from subclass of MFSideMenuVC
func pushCenterVC(vc: UIViewController!) {
// This cause the setup in vc.viewDidLoad go wrong
// If side menu is load for the first time, it doesn't have its window yet.
if self.view.window != nil {
vc.view.frame = self.view.window.bounds
}
self.menuContainerViewController.centerViewController = vc
// If I put it here, MFSideMenu will create an ugly shadow because of wrong initilize frame size.
// if self.view.window != nil {
// vc.view.frame = self.view.window.bounds
// }
}