2017-07-13 14 views
0

私は、全体のタブバーコントローラVCからビューコントローラ(毎回同じインスタンス、他のタブアイテムVCと同じように)を表示しようとすることがわからないという問題があります。私のタブバーコントローラVCには、ストーリーボードを介して接続されている3つのビューコントローラがあるので、3つのタブバー項目がタブバーに表示されます。 selectedIndexが変更されると、これらのビューコントローラはTab Bar Controller VCのサブビューのすぐ下に表示されます。常に一番上にある必要がありSwift:現在のビューコントローラは他のビューコントローラと同じコンテキストですか?

これらのサブビューは、下部にトップとタブバーのナビゲーションバーです:

enter image description here

そして、これは、これらの3つのビューコントローラに最適です。問題は、ここではナビゲーションバーのボタンを介してタブバーボタンに表示されていない別のビューコントローラーの1インスタンスにアクセスする必要があることです。

私の問題はどのように私がそれを提示しても、このVCは常にタブバーとナビゲーションバーをカバーするタブバーコントローラVCを超えてポップします。

ここで私が唯一の1インスタンスが作られていることを確認します

if podcastVC == nil { 
      //print("IT IS NIL") 
      let storyboard = UIStoryboard(name: "Main", bundle: nil) 
      podcastVC = storyboard.instantiateViewController(withIdentifier: "podcast") as! PodcastViewController 

      //*NOTE: have to set other vars too, this is temp 
      podcastVC.urlStr = currentTrackUrl! 
      podcastVC.originalUrl = currentTrackUrl! 
      AudioPlayerManager.shared.play(urlString: podcastVC.urlStr) 
     } 

     self.show(podcastVC, sender: self) 
     podcastVC.modalPresentationStyle = .currentContext 
     podcastVC.definesPresentationContext = false 


    [1]: https://i.stack.imgur.com/1d6MZ.png 

Swift: How to return to the same instance of my UIViewController

によって示されるようにどのように私はタブバーの項目と同じコンテキスト内のVCが存在することを作ることができますか?私は非常に高い(10のような)zの位置にナビゲーションバーのレイヤーを設定しようとしましたが、何も動作しません。なにが問題ですか?

+0

は 'ViewController'はワットをカバーして発表モーダル現在のスタイルを変更することができますタブバーを維持し、 をNAVますnavigationController

で自動的に戻るボタン穴のスクリーン。 – Mannopson

+0

okです。では、画面を覆わない同じコンテキストでどのように表示することができますか? – skyguy

+0

'present'の代わりに' show'を使用しようとしていますか?それはちょうど作品です – Mannopson

答えて

0

モーダルビュー: はプッシュビュー

は、他のすべてのビュー上にあり、プログラム的にポップする必要があり、すべてのビューコントローラ用の作品(例えば、バックボタンを手動で追加する)ことができます: のみナビゲーションコントローラで動作 追加あなたはVCをプッシュする必要があり、それはあなたが

+0

戻るボタンなしに押す方法はありますか?過去にそれを削除しようとしましたが、うまくいきませんでした – skyguy

関連する問題