Quando chiamo dismissViewControllerAnimated:completion:
per respingere un UIViewController
blocco completamento viene mai eseguito quando la vista corrispondente è nel mezzo di essere animata sullo schermo (usando presentViewController:animated:completion:
).dismissViewControllerAnimated: completamento: senza eseguito
Il UIViewController
non scompare nemmeno. È come se dismissViewControllerAnimated:completion:
fosse ignorato.
Il seguente codice è un esempio di codice semplificato perché l'originale è molto più grande. Il codice che ho indicato di seguito simula un caso d'uso in cui un errore di comunicazione di rete potrebbe innescare fine di popup mentre un altro punto di vista è inoltre in fase di spuntato-up allo stesso tempo ..
Codice esempio:
NSLog(@"Presenting view");
[self presentViewController:changeLocationViewController animated:YES completion:^{
NSLog(@"View done presenting");
}];
NSLog(@"Dismissing view");
[self dismissViewControllerAnimated:NO completion:^{
NSLog(@"View done dismissing");
}];
uscita log è:
2013-08-28 16: 14: 12.162 [1708 c07] Presentare vista
2013/08/28 16: 14: 12,178 [1708 c07] vista Allontanando
2013 -08-28 16: 14: 12,583 [1708: c07] Visualizza done presenti ng
Qualcuno sa come respingere il UIViewController
in queste circostanze?
Grazie in anticipo.
Che tipo di 'UIViewController' è? L'hai sottoclassata da solo o è una terza parte? –
È un UIViewController sottoclusterato. Ma niente di straordinario. Mostra solo del testo e un pulsante – MhaW
mostra un po 'di codice! –