2011-04-06 16 views
5

Tengo UITableViewCell y UItableView en una sola vista. Al hacer clic en una fila concreta de UITableView, navega a otro ViewController. Pero no puedo navegar a otro ViewController al hacer clic en UITableViewCell .¿¿Cómo puedo hacer esto??UITableViewCell y UITableView (seleccionó una fila) navegación a otro Viewcontroller

Para UITableView estoy utilizando este código:

 

- 
-(void)pushView1:(id)sender{ 
    if(edController == nil) 
    edController = [[EditableDetailCell alloc] initWithNibName:@"EditableDetailCell" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:edController animated:YES]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    UITableViewCell *tbcel; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
    } 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    tbcel.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 

    tbcel.layer.cornerRadius = 15; 
    tbcel.text = aBook.Name; 
    switch(indexPath.section) 
    { 
     case 0: 
      cell.text = aBook.Address; 
      break; 
     case 1: 
      cell.text = aBook.Phone; 
      break; 
     case 2: 
      cell.text = aBook.Purchase; 
    } 
    return cell; 
} 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(edController == nil) 
    edController = [[EditableDetailCell alloc] initWithNibName:@"EditableDetailCell" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:edController animated:YES]; 
}![enter image description here][1] 

Qué debería hacer yo por UITableViewCell ??

ist is tableviewcell and below it in block is tableview

+1

UITableViewCell son parte de la vista de tabla, ¿no? Entonces, ¿por qué quieres tener una acción para él por separado? – visakh7

+0

Es una UiTableViewCell no incluida en Tableview, se inserta en la biblioteca del constructor de interfaz View Through por separado. – Ketan

+0

No importa si es de IB o algo. UITableViewCell no es para este propósito. Ver mi respuesta a continuación. – Xiao

Respuesta

1

Editar:

lo que quiere empujar no es un UITableViewCell

Es otro punto de vista.

Se puede decir

YourCustomView *view = [[YourCustomView alloc] init]; 
[self.navigationController pushViewController:view animated:Yes]; 

pero nunca ver cualquier código de pasar a otra celda.

Una celda se utiliza para personalizar el aspecto de usted UITableView.

Añadir:

creo que si la declaración no es útil aquí.

Qué quiere decir

if(edController == nil){ 
    edController = [[EditableDetailCell alloc] initWithnibName:@"EditableDetailCell" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:edController animated:YES]; 
} 

o una vista vacía va a ser pasado de ninguna manera.

+0

He editado mi consulta por favor cgeck it .. – Ketan

+0

Estoy intentando pushview1 método aquí para tableviewcell (cliente 2) para navegar pero no navegar con este método – Ketan

+0

¿Lo hizo una IBAction y conectar este método con el botón correcto en el constructor de interfaz? Ese cliente2 junto a la imagen es un botón ¿no? – Xiao

1
(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(“Selected Row %d”, indexPath.row); 
    YourNextViewController *objVC = (YourNextViewController *)[storyboard instantiateViewControllerWithIdentifier:@"ViewControllerIdentifier"]; 
    [self presentViewController: objVC animated:YES completion:nil]; 
} 
Cuestiones relacionadas