2012-03-14 13 views

Respuesta

76

En el viewController añadir:

@property (nonatomic, weak) IBOutlet UITableViewCell *theStaticCell; 

conectar esa salida a la celda en el guión gráfico.

Ahora en tableView:didSelectRowAtIndexPath método:

UITableViewCell *theCellClicked = [self.tableView cellForRowAtIndexPath:indexPath]; 
if (theCellClicked == theStaticCell) { 
    //Do stuff 
} 
+0

Tuve que cambiar 'self.table' a' self.tableView'. – Nestor

+0

Muy útil, gracias. – LpLrich

+0

pero está optimizado? si no es una celda estática, ¿creará una nueva celda? – CiNN

9

Con celdas estáticas, aún puede implementar - tableView:didSelectRowAtIndexPath: y comprobar indexPath. Un enfoque, es que se define el indexPath particular #define, y comprobar para ver si la fila seleted es en ese indexPath, y si es así, llame [self myMethod].

+0

intenté eso, cuando invoco indexPath.row me devuelve un error durante el tiempo de ejecución. ¿Cómo puedo verificar la tercera sección de la segunda fila? – carbonr

+0

if ([indexPath isEqual: [NSIndexPath indexPathForRow: 1 inSection: 2]]) [self myMethod]; – Canopus

+0

¿Cuál es el error, por cierto? – Canopus

3

Aquí está mi tomar al mezclar células estáticas y dinámicas,

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
        if let staticIndexPath = tableView.indexPathForCell(self.staticCell) where staticIndexPath == indexPath { 
// ADD CODE HERE 
       } 
     } 

Esto evita la creación de una nueva celda. Todos estamos acostumbrados a crear la célula y configurarlo en cellForRowAtIndexPath

0

siguiente respuesta CINN, esta es la versión Swift 3 que resuelve el problema.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    if let staticIndexPath = tableView.indexPath(for: OUTLET_TO_YOUR_CELL), staticIndexPath == indexPath { 
     // ADD CODE HERE 
    } 
} 

este enfoque no es necesario implementar el método cellForRow, especialmente si está utilizando celdas estáticas en el guión gráfico.

Cuestiones relacionadas