2017-01-01 3 views
0

IOSアプリケーションのキーUIWindowにオーバーレイウィンドウを追加します。 しかし、新しいオーバーレイUIWindowはどこにも見えません。UIWindowオーバーレイが表示されない

それはlldbに基づいて、けれども正常に追加されているようです:デバッグで

(lldb) po UIApplication.shared.windows 
▿ 2 elements 
    - 0 : <UIWindow: 0x7fdfd3d0aec0; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x60800004d680>; layer = <UIWindowLayer: 0x608000220980>> 
    - 1 : <UIWindow: 0x7fdfd3c0d010; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x60000004c9c0>; layer = <UIWindowLayer: 0x6000002216e0>> 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    let vc = UIViewController() 
    vc.view.backgroundColor = UIColor.blue 

    let window = UIWindow() 
    window.frame = self.view.bounds 
    window.backgroundColor = UIColor.blue 
    window.windowLevel = UIWindowLevelStatusBar 
    window.rootViewController = vc 
    window.isHidden = false 
} 

がヒントの任意の並べ替えをお願い申し上げ/ おかげ

答えて

2

を助けますviewDidLoad()メソッドが終了すると、ウィンドウの割り当てが解除されます。 2番目のウィンドウを強く保持する必要があります。

+0

ありがとうございました。明示的にウィンドウを保持すると、問題が修正されました。ドキュメントでこの要件を見つけることができたら幸いです。 –

+0

はい、アップルのウィンドウ関連のトピックのドキュメントは欠けています。 https://bugreport.apple.comでドキュメントの拡張要求を必ず開いてください –

関連する問題