significa - El menú para agregar iOS causa un bloqueo cuando no se ve primero
se bloqueo mi iphone (1)
De acuerdo, lo descubrí. Después de una larga y ardua experiencia, lo descubrí.
Así que tengo numerosos archivos (.m y .h para cada uno):
InitViewController
MenuViewController
MainViewController
SpeakersView
El objetivo era cambiar de MainViewController utilizando un botón que no estaba en el menú de diapositivas a SpeakersView, pero al hacerlo directamente causó que el menú de diapositivas fuera nulo, como señaló Phillip Mills.
En cambio, puse esto en InitViewController.h, justo debajo de @Interface:
@property (nonatomic, retain) NSString *location;
Luego esto bajo @implementation en InitViewController.m:
@synthesize location;
Originalmente tuve esto bajo ViewDidLoad en InitViewController.m:
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];
Lo cambié a esto:
if([location length] == 0){location = @"Main";}
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:location];
De esta forma, si la variable estaba vacía, se convirtió en @ "Principal".
Luego en MainView.m, donde ejecuto el código después de presionar el botón, tengo esto:
InitViewController *ini;
ini = [self.storyboard instantiateViewControllerWithIdentifier:@"Init"];
ini.location = @"Speakers";
Y voilà, la vista cambia a Altavoces. Más exactamente, cambia a InitViewController que cambia automáticamente a Altavoces o lo que sea que establezca la ubicación.
Gracias a todos por vuestra ayuda.
Estoy usando un guión gráfico para cambiar de vista. Muy simple, hasta que intente agregar ECSlidingViewController.
Si agrego el menú de diapositivas anterior a la primera vista, llamo usando esto:
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];
Si configuro @ "Main" en @ "Speakers", la vista se carga bien. Obtengo el menú de diapositivas y todo. @ "Main" también se carga bien.
Sin embargo, si cargo @ "Principal" primero como en el código anterior, luego cambio las vistas a la que he designado como "Altavoces", se bloquea tan pronto como intento llamar al menú de diapositivas con este código:
if(![self.slidingViewController.underLeftViewController isKindOfClass:[MenuViewController class]]) {
self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}
[self.view addGestureRecognizer:self.slidingViewController.panGesture];
Aparece un error que indica: * Aplicación de finalización debido a una excepción no detectada ''NSInvalidArgumentException'', razón: ''* - [__ NSArrayM insertObject: atIndex:]: el objeto no puede ser nil''
He intentado cambiar las vistas de muchas maneras.
He intentado:
SpeakersView *second= [self.storyboard instantiateViewControllerWithIdentifier:@"Speakers"];
[self presentViewController:second animated:YES completion:nil];
He intentado:
SpeakersView *svc = [self.storyboard instantiateViewControllerWithIdentifier:@"Speakers"];
[self presentViewController:svc animated:YES completion:nil];
Cada uno funciona bien si no llamo al menú de diapositivas, pero cada uno causa un bloqueo cuando agrego el gesto de diapositiva.
Ideas?