Configurazione: ho uno storyboard impostato, con due semplici controlli di visualizzazione A e B. C'è un pulsante in A, che passa a B con un passaggio modale. B è presentato con una transizione modale sopra A. Va bene.Come eliminare un modal che è stato presentato in un UIStoryboard con un passaggio modale?
Domanda: c'è un modo per far uscire B e tornare ad A con qualche semplice magia da storyboard?
Si noti che se questo era tutto in un controller di navigazione, e ho usato un push seguito, sarebbe implicitamente essere curato dal controller di navigazione. Ci sarebbe un pulsante "indietro". Non c'è nulla di paragonabile per le modali, ho bisogno di costruire l'interfaccia utente me stesso, ma mi chiedo se c'è una meccanica che posso usare per segnalare di tornare da B a A.
Ora il metodo oldskool per costruire tornando da B ad a sarebbe:
- creare una proprietà delegato su B
- insieme a essere delegato di B quando la segue di transizione modale riproduce (posso collegare in questo utilizzando prepareForSegue: mittente: in a di codice)
- quando è il momento di respingere, B segnala al suo delegato
- A implementa un metodo delegato che rifiuta B
Questo funziona, ma sembra troppo sovraccarico e sciocco.
C'è qualche meccanismo di UIStoryboard che mi è sfuggito, che fondamentalmente farebbe un "reverse modal segue"?
Cool, non sapeva del PresentationViewController (apparentemente un nuovo iOS 5 cosa), che aiuta. – Jaanus
Sì, se vuoi farlo in un seguito personalizzato per un facile riutilizzo puoi fare qualcosa come - (void) eseguire { UIViewController * src = (UIViewController *) self.sourceViewController; [src.presentingViewController dismissModalViewControllerAnimated: YES]; } – AppHandwerker
@SimonH Il miglior consiglio per i segues! –