Me gustaría utilizar un UITableView modal al inicio para pedir a los usuarios la contraseña, etc., si aún no están configurados. Sin embargo, el comando para llamar a la vista de uitable no parece funcionar dentro de viewDidLoad.¿Puede presentModalViewController funcionar en el inicio?
código de inicio:
- (void)viewDidLoad {
rootViewController = [[SettingsController alloc]
initWithStyle:UITableViewStyleGrouped];
navigationController = [[UINavigationController alloc]
initWithRootViewController:rootViewController];
// place where code doesn't work
//[self presentModalViewController:navigationController animated:YES];
}
Sin embargo, el mismo código funciona bien cuando se le llama más tarde por un botón:
- (IBAction)settingsPressed:(id)sender{
[self presentModalViewController:navigationController animated:YES];
}
pregunta relacionada: ¿cómo me siento (en el nivel superior) cuando el UITableView ha utilizado el comando para salir?
[self.parentViewController dismissModalViewControllerAnimated:YES];
intenté viewWillAppear y obtuve el mismo efecto negativo que viewdidload. Cuando uso [self presentModalViewController: navigationController animado: YES]; en applicationDidFinishLaunching, obtengo "SIGABRT". Probablemente lo llame incorrectamente – BankStrong
No se puede llamar desde 'applicationDidFinishLaunching' - ese es un método que pertenece al delegado, que no es un controlador de vista. Necesita el objeto del controlador de vista raíz. A menudo, Xcode lo crea automáticamente para usted; busque una propiedad sintetizada llamada 'viewController',' rootController', o 'tabBarController', según su tipo de aplicación. – Tim
Eso puede haber estado claro (lo siento!); lo que quise decir fue en 'applicationDidFinishLaunching' no puede ejecutar' [self present ...] '- en su lugar debe ejecutar' [self.viewController present ...] 'o similar, dependiendo del nombre de su controlador de vista objeto. – Tim