2011-10-16 10 views
8

Sto creando un popoverSegue da un nuovo controller di visualizzazione e voglio spingere un terzo controller di visualizzazione nello stack originale. Questo è come mi sto creando l'applicazione:In uno storyboard per iOS 5, come si spinge una nuova scena sul controller di visualizzazione originale da un Popover?

  1. Creare un nuovo Single View Application
  2. Selezionare Use Storyboards
  3. Selezionare il file MainStoryboard.storyboard.
  4. Selezionare l'unica View Controller, modificare il Title e Identifier-initialView, quindi selezionare Editor->Embed In->Navigation Controller
  5. Trascinare due nuovi View Controller oggetti dagli oggetti Biblioteca sulla tela
  6. Modificare il Title e Identifier della nuova vista controller per: popoverView e newView.
  7. Aggiungere un oggetto Round Rect Button dalla libreria di oggetti a initialView e popoverView.
  8. Aggiungere un oggetto Label dalla libreria degli oggetti a `newView.
  9. Controllo fare clic sul pulsante nel initialView e trascinare fino a popoverView.
  10. Selezionare l'opzione Popover dal menu Storyboard Segues visualizzato.
  11. Controllo fare clic sul pulsante nello popoverView e trascinare fino allo newView.
  12. Selezionare l'opzione Push dal menu Storyboard Segues.
  13. Build & Run.

Fare clic sul primo pulsante, e la popover appare, ma quando si fa clic sul pulsante all'interno del popover, non succede nulla (dovrebbe spingere la nuova vista, ma non è così.)

Quello che voglio per fare è di spingere sullo stack Navigation Controller, ma non sono sicuro di come impostare lo storyboard per quello.

Qualche idea?

risposta

1

Suoni come dovrebbe funzionare, ma se non si prova quanto segue: 1. Fare clic sul seguito che non funziona e dargli un identificatore. Diciamo che è PopoverToNewSegue.

  1. Nel file di implementazione per il controller della vista popover, aggiungere un'azione quando il pulsante viene premuto.

  2. Tale funzione deve restituire nulla e aggiungere la seguente riga: [auto performSegueWithIdentifier: @ "PopoverToNewSegue" mittente: self];

Questo dovrebbe far funzionare i tuoi passi. Ho notato che i segues non funzionano sempre come te li aspetti, ma questo funziona per me senza fallo.

+1

Ho lo stesso problema. Ho provato a chiamare performSegueWithIdentifier come hai detto tu e non ha fatto nulla :( – jrwren

6

Si aspetta che la gerarchia UINavigationController si estenda in un popover presentato. Non lo farà. Lo stesso vale per i controller di visualizzazione modali. Se dovessi registrare self.navigationController in popoverView, vedresti che è zero.

Incorpora popoverView nel proprio UINavigationController. Ricordare che se si sta eseguendo l'override di prepareForSegue:sender: e si sta tentando di configurare il popover, sarà necessario ottenere lo topViewController da destinationViewController poiché la destinazione è ora un'istanza di UINavigationController.

+1

la tua spiegazione mi ha aiutato a risolvere il mio problema (http://stackoverflow.com/questions/13591559/how-to-pass-parameters-to-a-popover- view-controller-inside-a-navigation-controller). Grazie – HpTerm

+0

potresti aggiungere un piccolo esempio? – MiQUEL

Problemi correlati