2015-04-05 11 views
15

enter image description here Sto usando swift. Mi piacerebbe utilizzare la navigazione all'interno di TabBar con Storyboard. Inizialmente, il primo display viene visualizzato all'interno del menu della scheda. Ma quando passo al secondo display, il secondo display appare senza menu a schede.Come utilizzare il controller di navigazione all'interno di UITabBarController con Storyboard su Swift

ho selezionato segue di tipo "spettacolo (e.g.Push)"

Come posso mantenere la visualizzazione del menu scheda su tutti i punti di vista?

+0

una descrizione migliore (o screenshot) della configurazione storyboard corrente sarebbe utile qui. – Stuart

+0

Se si utilizza il controller della barra delle linguette, basta semplicemente editor-> incorporare in> controller di navigazione. Funzionerà come ti aspetti. –

+0

È possibile farlo mantenendo la gerarchia delle viste come incorporando il primo TableViewController con il controller di navigazione e quindi incorporando nuovamente il controller di navigazione con il controller della barra delle linguette. . Ora con alcune azioni basta spingere il secondo controller TableView dal primo .... –

risposta

26

In Interface Builder:

  1. Creare un UITabBarController e impostarlo come il controller Vista iniziale.
  2. Creare un UITableViewController.
  3. Selezionare UITableViewController e passare a menu bar > Editor > Embed in > Navigation Controller.
  4. Selezionare il numero UITabBarController e CTRL-trascinare da esso allo UINavigationController.
  5. Scegliere Relationship Segue > view controllers.
  6. Ora, qualsiasi controller di vista che verrà aggiunto nello stack UINavigationController verrà presentato nello stesso UITabBarController.

Per eseguire un segue dalla prima-in-stack UITableViewController collegato al UINavigationController, ad un altro ViewController è necessario, naturalmente, prima di creare un altro ViewController, creare un segue ad essa in Interface Builder, creare un identificatore per la segue e la nel codice eseguirla chiamando la funzione appropriata in Swift come:

optional func performSegueWithIdentifier(_ identifier: String, 
            sender sender: AnyObject?) 

Ecco un esempio di come il costruttore di interfaccia potrebbe assomigliare: enter image description here

+1

Come si modellano entrambi i controller di navigazione affinché siano uguali in Interface Builder? Posso dare uno stile e in qualche modo copiare quello stile all'altro? – h3dkandi

8

Ecco una panoramica generale su come sarà la tua Storyboard. È necessario utilizzare il controller della barra delle linguette come rootViewController.

Incorpora UITableViewController a UINavigationController, in modo da avere sempre un pulsante indietro.

Storyboard design

ci sono infinite possibilità di miglioramento fino a quando si seguono Combined View Controller Interfaces. Ecco quello che una demo sarà simile con una scheda comune come si voleva -

enter image description here

Problemi correlati