ver recuperar poner pantalla notificaciones nombre como cerrar centro borradas bloqueo bloqueada aplicaciones iphone ios transition

iphone - recuperar - Llamadas no balanceadas para comenzar/finalizar transiciones de aparición para<FirstViewController: 0x2a2c00>



recuperar notificaciones iphone (24)

Tengo este problema cuando simulo mi aplicación, no es un error o una advertencia, pero aparece en mi consola, ¿alguien ha experimentado esto antes?


''Llamadas no balanceadas para comenzar / finalizar transiciones de aparición para''

Dice que una animación se inicia antes de que no se realice la última animación relacionada. Entonces, ¿estás sacando cualquier controlador de vista antes de presionar el nuevo? ¿O puede estar apareciendo en la raíz? en caso afirmativo, intente hacerlo sin animación, es decir, [self.navigationController popToRootViewControllerAnimated:NO];

Y mira si esto resuelve el problema. En mi caso, esto funcionó.


Asegúrese de que no se olvide de ver en -WindowAppear, -viewDidAppear, -viewDidLoad, -viewWillDispepear, -viewDidDisappear para llamar al método súper apropiado en su sobrecarga de esos métodos. Por ejemplo, en mi caso, no coincidí con el nombre del método como este:

-(void)viewDidAppear { [super viewDidDisappear]; //some code staff .. }

Observe que los métodos de aparecer y desaparecer no coinciden


Debes ejecutar tu código en diferente ciclo para evitar esto

double delayInSeconds = 0.1; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ // Put your code here [self presentViewController:self.yourModalVC animated:YES completion:nil]; });


En mi caso sucedió cuando [self performSegueWithIdentifier:@"SomeIdentifier" sender:self]; dentro del método viewDidLoad un elemento viewDidLoad .

viewDidAppear método viewDidAppear resolvió el problema.

La razón es muy probable que en viewDidLoad no se hayan terminado todas las animaciones de lujo, mientras que en viewDidAppear todo está hecho.


En mi caso, estaba NSData de NSURL dentro del método '' viewDidLoad ''.


En mi caso, este error ocurre cuando haces clic en dos pestañas en una vista de tabla muy rápido.

El resultado causa un nombre de título incorrecto, el botón Atrás desaparece. Alguien mencionó que cuando presionas una vista, set animated:NO . El error desaparecerá pero aún provoca un comportamiento extraño. Empuja dos vistas, luego necesita retroceder dos veces para volver a la pantalla de vista de tabla.

Método que probé para resolver este problema:

agregar BOOL cellSelected;

en viewWillAppear cellSelected = YES;

en el delegado didselectcell if (cellSelected){cellSelected = NO; do action ; } if (cellSelected){cellSelected = NO; do action ; }

Esto ayuda a evitar hacer clic en dos celdas diferentes muy rápido.


Esta fue una pregunta difícil para mí: he anulado

override func shouldAutomaticallyForwardRotationMethods() -> Bool { return true }

sin anular:

override func shouldAutomaticallyForwardAppearanceMethods() -> Bool { return true }

en mi controlador de navegación raíz de la ventana. luego, un controlador de navegación infantil se quejó al presionar a otro controlador de vista con la advertencia mencionada anteriormente. La advertencia no fue la peor, el gran problema fue que ya no se llamaba al delegado del controlador de navegación infantil. weired.


La situación puede ocurrir si está agregando una vista con un controlador de vista modal como una sub-vista. Mejor usar:

-(void) viewDidAppear:(BOOL)animated { [self presentViewController:self.yourModalVC animated:YES completion:nil]; }

Básicamente se trata de decir que el ciclo de vida de la vista no está optimizado para esos ViewControllers que estás tratando de mostrar en ese momento.


Obtuve este problema porque estaba llamando a un UIPrintInteractionController desde un viewController sin UITabbar y sin UINavigationBar. Parece que UIPrintInteractionController no obtuvo el printInteractionControllerParentViewController correcto. Implementar el método en el delegado y devolver el rootViewController actual funcionó para mí.

- (UIViewController*)printInteractionControllerParentViewController:(UIPrintInteractionController*)printInteractionController;


Por lo que vale, obtuve el mismo error cuando no [super viewDidLoad:animated] una llamada a [super viewDidLoad:animated] en mi override viewDidLoad .


Puede ejecutar esto si intenta cerrar un UIViewController antes de que termine de cargarse.

Tenía este mensaje en la consola y me estaba enfocando completamente en el UIViewController que presentaba el nuevo UIViewController, sin éxito. Finalmente descubrí que el problema estaba en que el UIViewController que estaba presentando se descartaba porque el usuario no había iniciado sesión en su cuenta.

Espero que esto ayude a alguien.


También obtuve esto en

[self dismissModalViewControllerAnimated:YES];

Cambié el YES a un NO , y eso resolvió el problema.


También tuve este problema cuando toqué un botón de un NIB. Resultó que había conectado accidentalmente el botón para enviar un evento a dos métodos de IBAction, cada uno de los cuales realizaba un pushViewController: animado:


Tenía un poco de lógica implementada para esperar a empujar el UIViewController hasta que se UIViewController descargado todos los datos. Hubo un error en esta lógica que causó que se presionara el UIViewController demasiado pronto mientras todavía había otra llamada API en progreso.

Provocó el mismo UIViewController para ser empujado dos veces por el UINavigationController y dio esta advertencia.


Tengo el mismo problema cuando utilicé el método pop de navigationcontroller. En mi aplicación utilizo una lógica separada para el controlador de navegación. Así evité el uso de la barra de navegación y siempre está oculta. Luego uso una vista y notificación personalizadas para manejar el botón de retroceso y sus eventos. los observadores de notificación se registran y no se eliminan. Entonces, la notificación se dispara dos veces y crea el error mencionado anteriormente. Revise su código a fondo para obtener tales fallas


Tengo el problema similar cuando trato de hacer:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];

en una función como - (void) popUpToLevelTwo; , y para poner un return; al final de la función resuelve el problema


Tengo este problema también. Encontré dos soluciones a este problema:

  1. Puedes ver esta solución arriba.
  2. Encontré la subclase de UINavigationController donde se resolvió este problema. Controlador de navegación en búfer

Tuve el mismo problema al usar el controlador de navegación y presionar otros controladores. Traté de utilizar el Controlador de navegación en búfer y varios otros enfoques, pero no funcionó para mí. Después de pasar un tiempo para descubrirlo, noté que este problema ocurre si intentas presionar el nuevo controlador de vista mientras la transacción (animación) anterior está en progreso (supongo que unos 0,5 segundos de duración). De todos modos, hice una solución rápida con la delegación del controlador de navegación y esperando los acabados de animación previos.


Tuve este problema cuando olvidé configurar Break; después de presionar la vista en una declaración de cambio!

Como aquí:

case 1:{ SomeViewController *someViewController = [[SomeViewController alloc]initWithNibName:@"SomeViewController" bundle:Nil]; [self.navigationController pushViewController:someViewController animated:YES]; [someViewController release]; } break; //Forgetting to set break here:


Tuve muchos problemas con el mismo problema. Lo resolví de esta manera

1) No está utilizando UIViewController''s inicializador designado de initWithNibName:bundle: Intenta usarlo en lugar de solo init .

2) establecer animated:YES a un NO, y eso resolvió el problema. p.ej. [self.navigationController pushViewController: viewController_Obj animated:NO];


Tuve un problema similar que involucraba rebobinar diálogos modales. Publicado la solución aquí ...

https://.com/a/38795258/324479

[Problema]

Controlador Nav -> VC1 -Push -> VC2 -PopOver o Segue modal -> VC3.

VC3 se está desenrollando de vuelta a VC1.

Cuando el Segue de VC2 a VC3 es PopOver y Modal, el desenrollado termina en una advertencia: llamadas no balanceadas para comenzar / finalizar transiciones de aparición para UIViewController "

Si el Segue de VC a VC es push, la advertencia ya no existe.

[Solución]

Sería genial si la lógica de desenvolvimiento se encargara de esto. Tal vez es un error, tal vez no. De cualquier forma, la solución es hacer que VC2 (el controlador que tiene la ventana emergente) sea el objetivo del rebobinado, luego espere a que termine de aparecer antes de abrir el controlador de navegación. Eso garantiza que la animación de rebobinado (ventana emergente invertida) tenga tiempo suficiente para terminar antes de retroceder. Incluso con las animaciones desactivadas, todavía tiene que esperar o si no recibe el error.

Su código para VC2 debería ser el siguiente. (Rápido)

class VC2: UIViewController { private var unwind = false @IBAction func unwindToVC1(segue:UIStoryboardSegue) { unwind = true } override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) if unwind { self.navigationController?.popViewControllerAnimated(false) } } }


el motivo detrás del error "Llamadas no balanceadas para comenzar / finalizar transiciones de apariencia" es cuando navega | segue dos veces al mismo tiempo


una solución sería,

[NSTimer scheduledTimerWithTimeInterval:0.05(or as required) target:self selector:@selector(your_selector_method_to_push_the_view) userInfo:nil repeats:NO];


Motivo del mensaje: este mensaje se muestra si y solo si está presionando / presentando otro controlador de viewWillAppear desde el viewWillAppear , loadView , init o viewDidLoad del controlador de vista actual

Forma de eliminar el mensaje de error: Mueva su código de presentación / presentación al método viewDidAppear resolverá el problema