2017-11-30 6 views
0

を隠しません。これはカスタムアクティビティインジケータです。私はそれをカバーすることを望みますが、ナビゲーションバーとタブバーは見えるようにしておきます。が、私はモーダルに半透明のビューでのViewControllerを提示していナビゲーションバー

ドキュメント、およびいくつかのSOの答えは(例えばPresenting a Modal View Controller hides the Navigation Bar)ナビゲーションコントローラ上にモーダルを提示すると、これを達成すべきであることを示唆しているように見えます。しかし、私はそれを行うとき、それは正しくタブバーを表示しますが、ナビゲーションバーをカバーします。

アイデア?ここに関連するコードは次のとおりです。

let spinnerVC = SpinnerViewController() 
spinnerVC.modalPresentationStyle = .overCurrentContext 
spinnerVC.modalTransitionStyle = .crossDissolve 
self.navigationController?.present(spinnerVC, animated: true, completion: nil) 
//self.navigationController is definitely not nil 

答えて

0

あなたはnavigationControllerrootViewControllerとして追加することで、viewcontrollerを提示し、このような現在のviewControllerの上にそれを提示することができます

let spinnerVC = SpinnerViewController() 
let navVC = UINavigationController(rootViewController:spinnerVC) 
navVC.modalPresentationStyle = .overCurrentContext 
navVC.modalTransitionStyle = .crossDissolve 
self.present(navVC, animated: true, completion: nil) 
+0

これは、* a *ナビゲーションバーでスピナービューを表示します。しかし、根底にあるものではない。明確にするために、私は基本的なナビゲーションバーが見えるようにしたい、タイトルとボタンを完備しているので、ユーザーは必要に応じて移動することができます。 –

+0

は、基本ナビゲーションバーを表示するには、ビューコントローラ –

0

はそれを提示しないでください。それを子ビューコントローラとしてナビゲーションコントローラのトップビューコントローラに追加し、そのビューをサブビューとしてビューに追加して、フレームを調整します。

let spinnerVC = SpinnerViewController() 
spinnerVC.view.frame = self.navigationController?.topViewController?.view.bounds 
self.navigationController?.topViewController?.addChildViewController(spinnerVC) 
self.navigationController?.topViewController?.view.addSubview(spinnerVC.view) 
+0

を提示すると同じに似ているアニメーションを持つ子ビューコントローラとしてspinnerVCを追加することができますはい、私はこの考えました。しかし、このようにして、正しく動作するようにするためには追加作業が必要です(たとえば、スクロールできない、タイミングが間違っているなどの理由でサブビューが表示されないなど)。これは非常に柔軟性があり、アプリ全体のさまざまなビューに表示されるため、理想的ではありません。シンプルなモデルのプレゼンテーションを望んでいた。 –

+0

モーダルプレゼンテーションは、コンテキスト全体(あなたのVCのnav barを含む)をカバーします。フレームサイズを調整して高さを減らすことはできますが、基になるコンテンツは表示されないため、ナビゲーションバーではなく黒で表示されます。 –

+0

あなたは上記のそれはあなたのアプリケーション全体で再利用できることができるようにあなたのためにこれを行うだろう機能を追加するためのUIViewControllerの拡張機能を作成することによって行うことができます。 –

関連する問題