2012-01-04 11 views
6

Tengo un guión gráfico con tabbarcontroller. Una de las pestañas tiene una vista de tabla y quiero que cuando el usuario toque una fila desde la vista de tabla, abra una vista de detalle. El problema es cuando abro la barra de pestañas de la vista de detalles y la barra de navegación se esconde ... En el guión gráfico creo la vista de detalles como un nuevo controlador de vista, luego creo un nuevo archivo y lo remito a la clase de vista detallada.¿Cómo abrir el controlador de vista desde didSelectRowAtIndexPath en el guión gráfico?

El código en didselectrowatindexpath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

detalleYouTube *dvController = [[detalleYouTube alloc] init]; 

[self.navigationController pushViewController:dvController animated:YES]; 

} 

gracias de antemano!

Respuesta

3

Supongo que tiene la vista de 'Detalle' como parte del guión gráfico (no en un XIB separado); si es así, deberá colocar un NavigationController por separado al comienzo de la secuencia de TabBarItem 'Detail'.

Esta página tiene un buen tutorial sobre lo que creo que su tratando de lograr: http://maybelost.com/2011/10/tutorial-storyboard-in-xcode-4-2-with-navigation-controller-and-tabbar-controller-part1/

también comprobar estos enlaces a un tutorial Storyboard más en profundidad:

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2

5

Otro enfoque para esto no es usar tableView: didSelectRowAtIndexPath sino usar prepareForSegue: sender

la forma en que lo hice fue:

-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender 
{ 
    DetailViewController *viewController = [segue destinationViewController]; 
    CustomObject *custObject = [arrayOfObjects objectAtIndex:[self.tableView indexPathForSelectedRow].row]; 
    viewController.objectNeeded = custObject; 
} 

Este ejemplo se basa en la idea de que el controlador de la vista de detalle está conectado a su controlador de vista de tabla.

6

Esto es un poco viejo, pero si alguien tiene que hacer esto aquí es un enfoque sencillo:

Puede utilizar añadir un segue desde el punto de vista de la barra de pestañas para detalleYouTube, poner un identificador al segue y hacer esto:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
[self performSegueWithIdentifier:@"segueIdentifier" sender:tableView]; 
} 
Cuestiones relacionadas