Llamadas desequilibradas para comenzar / finalizar transiciones de apariencia después de video en pantalla completa de YouTube

Me estoy acercando mentalmente tratando de resolver este problema:

La situación:

Tengo una aplicación bastante básica, un MMDrawerController con una tabla dentro, que se vincula a un uitabbarcontroller cuando se presiona un elemento. Dentro de la primera página de eso se encuentra una UIWebView de youtube incorporada que, cuando se presiona, reproduce una pantalla completa de video de YouTube.

Esto es lo que está pasando.

  1. Presione el video, se abre en pantalla completa y comienza a jugar
  2. UITabBar view Will Desaparecer incendios
  3. Vista de la raíz MMDrawerController. Fuegos visibles.
  4. Video termina
  5. El usuario de vuelta a UITabBar comenzó y todo parece estar bien , aunque 'desapareció' antes

Ahora pongo booleans en el ViewWillAppears / Disappears de las dos vistas para comprobar cómo es el estado actual de la aplicación. Normalmente es 0,1 indicando que la tabla está abierta o que el uitabbarcontroller está abierto. Después del video, muestran 0,0. Si presiono nuevamente la navigation, aparece "Llamadas desequilibradas para comenzar / finalizar transiciones de apariencia" cuando navego desde donde sea que esté.

En este momento si escucho el inicio del video de YouTube y luego disparo:

[self.navigationController popToRootViewControllerAnimated:NO];

Puedo evitar que se produzcan llamadas desbalanceadas y el usuario puede seguir navegando por la aplicación. Sin embargo, no pueden ver el video y simplemente se vuelven a ver.

También en 3. Puedo comprobar si hay 0, 0 en los dos controlleres y luego reiniciar la aplicación completa. Pero esa no es una buena solución.

Resultado previsto:

El usuario puede presionar la vista de uiweb, ver el video, y luego son devueltos a donde lo dejaron. Si golpean en el controller de navigation, no hay transiciones de apariencia desequilibradas.


He probado un montón de cosas, como

[self.navigationController poptoViewController:...]


De lo que recojo en este punto, tiene algo que ver con los videos de pantalla completa cargados en el controller raíz (de ahí su vista "Me despido con disparo en 3.") pero luego no me "colocan" correctamente. Algo como

[self.navigationController heyTheUserIsPresentlyIn:self]

Que pueda llamar después de que el video se vaya sería una locura .

Cualquier ayuda es muy apreciada, aunque he estado en esto durante horas y horas, si soy idiota, cualquier enlace a documentos o secciones en los libros ayudaría mucho. Gracias.

Suena como el problema del ciclo de vida de ViewController .

¿Estás seguro de que quieres navegar desde un UITableView a un UITabBarController ? Intente eliminar este último porque normalmente es el ViewController raíz y las llamadas a viewWillDisappear y viewWillAppear se pueden hacer de acuerdo con esta suposition.

Si necesita un control con tabs que no sea el ViewController la raíz, ¿tal vez considere tener el suyo propio?

Bueno, esto sucede cuando una secuencia de animation de navigation o animation comenzó sin
correctamente terminando la primera animation, así que puedo adivinar lo mismo con tu animation, ten cuidado
de su animation, incluso si no se debe al controller de navigation.
Espero que te ayude