このトピックは非常に人気があることを私は知っていますが、私はプログラミング言語の中で少し複雑な問題を抱えています、事実は私がまだどこにコードを置くのかわからないということです。さて、私は全体のケースを教えてあげる:
モーダルSwiftを通常とは少し違った方法で作成しようとしています。ボタンをクリックすると、ViewControllerが(モーダルタイプに従って)画面に表示されますが、背景は透明になります。ラベル付きの青い表示のみが表示されます。このViewControllerが表示されると背景は透明になりますが、トランジションが完了するとすぐに黒い背景のままになります。すでにopaqueオプションを無効にし、いくつかのオプションをテストしましたが、このトラブルシューティングは何もしません。
いくつかは私を助けることができる?
ビデオはケース( https://www.youtube.com/watch?v=wT8Uwmq9yqY )のシミュレータでのテストです。
私はSwiftから始めています、そして私はまだXcodeでプログラムする方法にかなり迷っています、私はこれを解決するために以下のコードを持っている質問に対する答えを読みました:
self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;
このコードをどこに置きますか?
あなたはこれのようにそれをすることができます:
メインのView Controllerの場合:
func showModal() {
let modalViewController = ModalViewController()
modalViewController.modalPresentationStyle = .overCurrentContext
presentViewController(modalViewController, animated: true, completion: nil)
}
モーダルView Controllerの場合:
class ModalViewController: UIViewController {
override func viewDidLoad() {
view.backgroundColor = UIColor.clearColor()
view.opaque = false
}
}
ストーリーボードを使用している場合は、
Kind
をPresent Modally
に設定したストーリーボードSegueをモーダルView Controllerに追加し、このView Controllerで次の値を設定します。
As Crashalot が彼のコメントで指摘したように:segueがDefault
とPresentation
の両方にのみTransition
を使うようにしてください。 Presentation
にCurrent Context
を使用すると、モーダルは透明のままではなく黒くなります。