2016-02-07 7 views
5

ich dies ein Storyboard wie habenTabBar- halten, wenn zu einer anderen Ansicht Controller bewegt

-> Navigation -> Loginview -> TabBarController -> VC1 -> VC2

Ich habe es nicht geschafft ein „Schritt zu machen "Von VC1 zu VC2, wobei die Tab-Leiste beibehalten wird.

ich versuchte das folgende:

  • Segue (Karte Typ)

    self.performSegueWithIdentifier("toVC2segue", sender: self) 
    
  • instantiate programmaticaly:

    // prepare for future display 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let navigationVC = UIApplication.sharedApplication().keyWindow?.rootViewController as! UINavigationController 
    
    // prepare next view 
    let vc = storyboard.instantiateViewControllerWithIdentifier("VC2id") 
    
    self.tabBarController?.navigationController?.pushViewController(vc, animated: true) 
    

aber beide die Tab-Leiste machen zu verschwinden.

Ich habe auch versucht

self.hidesBottomBarWhenPushed = false 

aber das alles änderte sich nicht.

Haben Sie eine andere Idee?

PS: ich mein Schema oben ...

aktualisiert

Edit: die Antworten unten Nach der Lektüre habe ich versucht, eine andere Navigation-Controller hinzuzufügen:

-> Navigation -> Loginview -> TabBarController -> Navigation -> VC1 -> VC2

aber ich habe jetzt zwei Navigationsleisten lagert in VC1 und VC2 ...

Antwort

5

Sie benötigen TabBarContoller als RootViewController der App zu setzen. So sollte Schema wie folgt sein:

TabBarContoller -> Tab1 -> UINavigationController -> ViewContoller1 -> ViewContoller2.

In diesem Fall können Sie zwischen ViewContoller1 und ViewContoller2 navigieren und TabBarContoller bleibt sichtbar.

+0

eingebettet ist, so sollte jeder Tab seinen eigenen Navigationscontroller haben? – Nahouto

+0

Jede Registerkarte sollte ihren eigenen Navigationscontroller oder View-Controller haben. Abhängig vom Anwendungsfall. – salabaha

+2

Ich muss meine komplette App neu erstellen ... so ein Schmerz ... – Nahouto

5

Ihre Ansichtshierarchie sollte nicht so aussehen, wenn Sie die tabBar beibehalten möchten.

-> Navigation -> TabBarController -> VC1 -> VC2

Sie sollten es sich ändern -> TabBarController -> Navigation -> VC1 -> VC2

+0

Danke, es scheint die einzige Lösung zu sein ... argh – Nahouto

0

Zuerst müssen Sie Stellen Sie sicher, dass Ihr VC1 zu VC2-Segment in Typ (Show e.g. Push) ist. Dann müssen Sie sicherstellen, dass VC1 in einem

Verwandte Themen