example - lifecycle viewcontroller ios
¿Vinculando un nuevo controlador de visualización al guión gráfico? (3)
La respuesta de Scott Sherwood es la respuesta más correcta que encontré después de muchas búsquedas. Aunque un cambio muy leve según el nuevo SDK (6.1), presentModalViewController se muestra en desuso.
Aquí hay un cambio muy pequeño a la respuesta anterior.
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
HomeViewController * hvc = [sb instantiateViewControllerWithIdentifier:@"LoginView"];
[hvc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:hvc animated:YES completion:nil];
Probablemente hay una solución simple pero no puedo entenderlo.
Estoy usando guiones gráficos para la interfaz.
Comienzo con un controlador de la barra de pestañas, pero antes de que el usuario tenga permiso para usar la aplicación, el usuario debe autenticarse a través de una vista de inicio de sesión que se presiona modalmente al inicio.
Quiero configurar la vista de inicio de sesión en el mismo guión gráfico, pero no puedo trabajar para averiguar cómo vincular el controlador de vista en el guión gráfico y mi código.
Que he hecho:
- Cree un nuevo archivo de canal de subclase UIViewController> nuevo> nuevo archivo.
- Arrastra un nuevo UIViewController en el storyboard
- Establecer la clase en la pestaña de clase personalizada
- arrastra un UILabel para propósitos de prueba.
- correr
Sin etiqueta...
Soy nuevo en este campo. Pero si el primer controlador de vista es un controlador de vista de navegación y su controlador de vista raíz es un controlador de vista de tabla. Si desea presionar un controlador de vista como el LoginViewController cuando hace clic en la celda, y también desea volver a la vista de tabla mediante la barra de navegación. Recomiendo de esta manera:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *controller = [sb instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.navigationController pushViewController:controller animated:YES];
}
De esta manera, puedes tener la navegación.
Por cierto, no sé por qué aparecerá este tipo de problema que pediste. Supongo que cuando se crea el loginviewcontroller en el código, su vista no es la vista en el guión gráfico. Si alguien sabe la causa, por favor dime! ¡Gracias!
Tire de un nuevo UIViewController que actuará como el controlador de vista de inicio de sesión en MainStoryboard. En el inspector de atributos, cambie el identificador a LoginViewController (o algo apropiado). Luego añade
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[vc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentModalViewController:vc animated:YES];
}
al controlador de First view y la pantalla de inicio de sesión se cargará desde su guión gráfico y se presentará.
Espero que esto ayude.