Nella nostra applicazione iOS con tre UIViewController
s uno dopo l'altro, vorremmo saltare quello intermedio in base ad alcune condizioni e passare direttamente dal primo al terzo. Tuttavia, l'utente dovrebbe essere in grado di tornare al secondo tramite il pulsante "Indietro" sul terzo controller.Saltare condizionatamente un UIViewController in un'app iOS 5 con UINavigatonController
Ho provato [self performSegueWithIdentifier:@"segueId" sender:sender];
da viewDidLoad
, viewWillAppear
ma questo danneggia la barra di spostamento come indicato dal registro di debug. Chiamando questo codice da viewDidAppear
funziona bene, ma poi la seconda vista è già visualizzata, che è quello che stavo cercando di evitare in primo luogo.
Ho anche provato [self.navigationController pushViewController:vc animated:NO];
ma il risultato è barra di spostamento in modo simile danneggiato, anche se questo registro di debug di ora non ha tali voci.
Quale sarebbe il modo supportato per farlo (se possibile)?
L'obiettivo è iPhone4 con iOS 5.1 e l'ambiente di sviluppo è Xcode 4.3.
Grazie mille per la risposta. Per essere in grado di implementarlo in questo modo, sembra che i controller non debbano necessitare di dati dal precedente. In questo momento nella nostra app ogni controller prepara i dati rilevanti (in base alla selezione dell'utente) per il controller successivo durante 'prepareForSegue'. Questo è il motivo per cui stavo cercando qualcosa che mi permettesse di "saltare" (cioè come se un seguito fosse eseguito automaticamente). Mi hai dato un'idea su cui pensare. Lasciami lavorare su di esso e vedere se riesco a incorporare questa idea nell'app. – alokoko
C'era un po 'di mischia, ma ho funzionato. Continuo a sperare che ci fosse in qualche modo un modo per "saltare" (magari attraverso un seguito o un altro modo) che avrebbe funzionato all'interno dello stesso controller prima che la vista apparisse. – alokoko
Un dettaglio che ho dimenticato di menzionare: Il pulsante Indietro sul terzo controller dopo il salto è etichettato come "Indietro" piuttosto che il titolo del secondo controller come sarebbe nella sequenza normale. Questo dovrebbe essere impostato manualmente? – alokoko