2016-06-12 6 views
1

Ich bin ein schneller Neuling und ich habe eine einfache Frage, die ich hoffe, jemand kann mir helfen, herauszufinden.Swift erstellen "universal" segue in Tab-Leiste App

Ich habe eine Multi-Tab-App. Ich habe einige Übergänge von den Registerkarten der Registerkarte auf dem Stoprboard erstellt. Ich habe die Segues Bezeichner angegeben und ich rufe sie aus meinem Tab1ViewController Code mit performSegueWithIdentifier("tab1ToMyTarget", sender: sender) kein Problem.

Allerdings würde ich gerne in der Lage sein, das Segment von jedem der Tabs der App aufzurufen, ohne neue Übergänge von den anderen Registerkarten der Ansicht zu erstellen (dh ich möchte nicht erstellen "tab2ToMyTarget" - ich nehme an, es gibt ein besseres Weg!).

Meine Frage: Muss ich diese ‚universal‘ segues auf der Tableiste-View-Controller (z "tabBarToTarget") erstellen (und wenn ja, wie nenn ich es von einem meiner Tabansicht-Controller)? ... oder ...

Behalte ich den Übergang von einem einzigen Registerkarten-Controller (tab1ToTarget) und rufe diesen Übergang von einem gleichrangigen Registerkarten-Controller auf?

Antwort

1

Setzen Sie zunächst den View-Controller, den Sie aufrufen möchten, auf storyboard Id. Führen Sie dann folgendes aus:

let vc = storyboard!.instantiateViewControllerWithIdentifier("someViewController") 
self.presentViewController(vc, animated: true, completion: nil) 
+0

Vielen Dank für diese Idee - klingt perfekt und ich war mir dieser Methode nicht bewusst, also danke, dass Sie sich die Zeit genommen haben, das Snippet zu posten. Ich werde es jetzt versuchen :-) – James

+0

Das funktionierte genau so, wie ich es wollte - das einzige, was ich tun musste, war das Storyboard zu entpacken 'let vc = storyboard! .instantiateViewControllerWithIdentifier (" testView ")' (Ich weiß immer noch nicht wann etwas wird optional sein oder nicht! ... Ich bin so ein n00b! :-) – James

+0

Oh yeah! Ich habe das vergessen. Ich werde meine Antwort für zukünftige Referenz bearbeiten. – penatheboss

1

Sie können nicht den gleichen Abschnitt verwenden, um einen Controller von einem anderen zu öffnen. Es ist besser, einen View-Controller mit seiner Storyboard-ID zu instanziieren und dann basierend auf dem Flow zu präsentieren.