2012-01-22 7 views
9

Forse mi manca qualcosa di semplice. Ho aggiunto un passaggio modale da un pulsante a un controller di visualizzazione. Ho quindi aggiunto alcuni passaggi per preparare ForSegue (e ho controllato che avessi chiamato correttamente il seguito). L'ho fatto poche altre volte senza problemi.Segue non chiama prepareForSegue

Ora, quando faccio clic sul pulsante, si apre la finestra modale, ma il file preparazioneForSegue non viene attivato. Ho provato a mettere un'istruzione di registro in prepareForSegue prima ancora che controlli la descrizione dell'etichetta (quindi teoricamente dovrebbe sparare per ogni passaggio). Ma non ho registrato nulla.

Qualche idea?

risposta

9

Bene, ho trovato l'errore del principiante che sospettavo. Ho duplicato un VC e ho dimenticato di impostare la sua classe sulla mia nuova classe VC.

+0

Ho fatto esattamente lo stesso errore !!! divertente! – Armen

+0

Sto archiviando come noob [) – WINSergey

0

Collegare il Segue al VC, non il pulsante. Poi, nel caso touchUpInside, messo

[self performSegueWithIdentifier:@"segueid" sender:nil]; 

Ho quasi sempre Collegare il segue fino a uno VC o un tableviewcell (se sto usando un televisore cella statica)

+2

Sono sicuro che funzionerebbe, ma il punto di seguito è di fare questo per me, no? In tutti i miei altri seguiti non è stato necessario farlo. –

+0

Hai ragione, dovrebbe funzionare come tu l'hai. Mi piace solo avere un po 'più di controllo. Verifica di aver effettivamente cablato il pulsante (elimina il seguito e aggiungilo nuovamente assicurandoti di avere il pulsante selezionato nella visualizzazione dello storyboard prima di trascinare il controllo sull'altro VC. –

13

Collegamento di una segue da un pulsante per la il prossimo controller è il modo corretto per collegarlo, basta ricordare che prepareForSegue: viene chiamato sul VC che possiede il pulsante non del controller in ingresso. Ottieni il controller in entrata chiamando [segue destinationViewController].

+0

Grazie - ma ho controllato e sto chiamando prepareForSegue nel VC che possiede il pulsante. –

0

È necessario impostare l'identificativo di riutilizzo cella prima che venga richiamato il passaggio. Ho provato molte soluzioni come sopra e controllato le impostazioni VC ma non ho impostato l'identificatore di riutilizzo della cella prototipo.

Solo dopo averlo impostato su "Cell", ha funzionato definitivamente.