2013-10-23 7 views
7

Così sto lavorando su un nuovo tutorial da Apple (https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html) e arrivati ​​ad un punto in cui sto avendo un problema con lo storyboard:Storyboard: Control-trascinare da una pulsante della barra per la voce Esci

Non riesco a trascinare il controllo da un UIBarButton all'elemento Exit nella scena dock. Quando clicco sulla voce Esci, l'ispettore Attributi dice "Non applicabile".

Ecco un estratto del tutorial. Non sono in grado di pubblicare immagini. Per una migliore comprensione del mio problema è possibile vedere un'immagine del controllo trascinare fino all'elemento Exit nella parte inferiore della pagina.

Per rilassarsi torna a XYZToDoListViewController

[...]

Per creare la segue di svolgimento, collegare i pulsanti Annulla e fatto alla unwindToList: azione attraverso l'icona Esci nel dock del controller della vista di origine, XYZAddToDoItemViewController.

Per collegare pulsanti alla unwindToList: azione

  • Nella navigazione di progetto, selezionare Main.storyboard.
  • Nell'area di lavoro, trascinare Control dal pulsante Annulla alla voce Esci nel dock scena add-to-do-item.
  • [...]
  • Un menu viene visualizzato nella posizione in cui è terminato il trascinamento. Scegli unwindToList: dal menu di scelta rapida. Questa è l'azione che hai appena aggiunto al file XYZToDoListViewController.m . Questo significa che quando il Cancel viene toccato, la segue si rilassarsi e questo metodo sarà chiamato."

risposta

9

si può fare solo se si dispone di un metodo che sa come gestire questi eventi. questo metodo deve avere la seguente struttura delle firme:

- (IBAction)finishedDoingWhatever:(UIStoryboardSegue *)sender; 

Nota che deve essere un IBAction e che prende il segue come argomento. Una volta fatto, il popup dovrebbe apparire dall'icona di uscita.

+0

Non sapevo che si potesse fare questo per fare un pop/chiudere da uno storyboard. Sembra spezzato il fatto che sia necessario avere un'implementazione del metodo vuota per farlo funzionare. – Robert

+0

@Robert: non necessariamente. Poiché l'argomento è un UIStoryboardSegue, quell'istanza avrà una proprietà 'sourceViewController', che si riferisce al controller della vista che stai chiudendo. Qualsiasi dato (pubblico) da quel controller di visualizzazione può essere utilizzato per l'elaborazione in questo metodo. È molto più semplice dell'utilizzo della delega per presentazioni/licenziamenti di base. –

+0

Grazie per la tua risposta veloce!Ho usato per sbaglio la firma sbagliata: - (IBAction) ha terminato su DoingWhatever: (UIStoryboard *) mittente; Ora tutto funziona come previsto :-) – captainqpeww

0

Hai provato il salvataggio del XYZToDoListViewController.m dopo aver scritto il metodo unwindToList?

ho appena aggiunto un altro metodo di svolgimento e si mostrava solo nel menu di uscita dopo aver salvato il controller della vista.

+0

Grazie per la vostra risposta veloce! Ho usato per sbaglio la firma sbagliata: - (IBAction) ha terminato su DoingWhatever: (UIStoryboard *) mittente; Ora tutto funziona come previsto :-) – captainqpeww