2017-10-27 4 views
1

私はkeyWindowのサブビューであるビューを持っています(下のコードで見ることができます)。このビュー(myView)の上にalertControllerを表示したいと思います。ビューの上に現在のアラートコントローラ、Swift

alertControllerをtopViewControllerに表示しようとしましたが(下図参照)、これは動作しませんでした。なぜなら、私が持っているビューはtopViewControllerの一部ではないからです。

ビューの上にalertControllerを表示するにはどうすればよいですか?

これは、ビューがtopViewControllerの一部ではないので、動作しませんでした。私は以下のkeyWindow

guard let window = UIApplication.shared.keyWindow else{ 
    return 
} 

window.addSubview(myView) 

にビューを追加する方法です

guard let vc = UIApplication.topViewController() else { return} 
vc.present(alertController, animated: true, completion: nil) 
+1

チェックしてみてください。これはあなたを助けることができます。 https://stackoverflow.com/a/46915716/8294374 – maku

+0

現在のキーウィンドウのルートビューコントローラに表示する必要があります。常に表示され、常に上に表示されます。 – holex

+0

@eneadume、それはありがとうございます.. – user44776

答えて

0

この答えではこの

func showAlertMessage(title:String? = nil, _ message:String) { 
    let rootVC = APP_DELEGATE.window?.topMostController() 
    var alert = UIAlertController(title: message, message: nil, preferredStyle: .alert) 
    if let title = title { 
     alert = UIAlertController(title: title, message: message, preferredStyle: .alert) 
    } 
    alert.addAction(UIAlertAction(title: "Okay", style: .default, handler: nil)) 
    rootVC?.present(alert, animated: true, completion: nil) 

}

関連する問題