Il plug-in player di YouTube è esso stesso un controller di visualizzazione modale. Sta tornando al suo presentingViewController
quando viene premuto il pulsante Fine. Il suo presentingViewController
non è il controller della visualizzazione modale, ma è invece il viewController che ha chiamato [presentModalViewController:animated:]
per presentare il controller della visualizzazione modale. Poiché il controller della visualizzazione modale originale è ancora attivo, l'app si comporta male.
per risolvere il problema,
1) La traccia se il controller di vista modale è stato presentato, ma non licenziato.
2) Nel metodo viewDidAppear
del controller della vista di presentazione, se il controller della vista modale è stato presentato e non eliminato, chiuderlo e presentarlo di nuovo.
Ad esempio, nel controller che presenta la visualizzazione Web di controllo modale:
- (void) presentModalWebViewController:(BOOL) animated {
// Create webViewController here.
[self presentModalViewController:webViewController animated:animated];
self.modalWebViewPresented = YES;
}
- (void) dismissModalWebViewController:(BOOL) animated {
self.modalWebViewPresented = NO;
[self dismissModalViewControllerAnimated:animated];
}
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (self.modalWebViewPresented) {
// Note: iOS thinks the previous modal view controller is displayed.
// It must be dismissed first before a new one can be displayed.
// No animation is needed as the YouTube plugin already provides some.
[self dismissModalWebViewController:NO];
[self presentModalWebViewController:NO];
}
}
Hai trovato una soluzione al tuo problema, puoi condividerlo con noi? – Illep
non ancora ... Non l'ho trovato – jonypz