Siente como que estoy un poco loco aquí. Tengo una vista de detalle con algunos UITextField
s independientes, unos UITextFields
en UITAbleViewCell
s, y uno solo UITableViewCell
que se utilizará para guardar notas, si las hay. Solo quiero que esta celda sea seleccionable cuando estoy en modo de edición. Cuando no estoy en modo de edición, no quiero poder seleccionarlo. Al seleccionar la celda (mientras está en el modo de edición) se activará un método que iniciará una nueva vista. Sé que esto es muy fácil, pero me falta algo en alguna parte.Configurando correctamente willSelectRowAtIndexPath y didSelectRowAtIndexPath para enviar selecciones de celda
Éstos son los métodos de selección actual que estoy usando:
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.editing) {
NSLog(@"Returning nil, not in edit mode");
return nil;
}
NSLog(@"Cell will be selected, not in edit mode");
if (indexPath.section == 0) {
NSLog(@"Comments cell will be selected");
return indexPath;
}
return nil;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.editing) {
NSLog(@"Not in edit mode. Should not have made it this far.");
return;
}
if (indexPath.section == 0)
[self pushCommentsView];
else
return;
}
Mi problema es realmente 2 veces;
1) Incluso cuando no estoy en modo de edición, y sé que estoy devolviendo nil
(debido al mensaje NSLog
), aún puedo seleccionar la fila (parpadea en azul). Desde mi comprensión del método willSelectRowAtIndexPath
, esto no debería estar sucediendo. Tal vez estoy equivocado acerca de esto?
2) Cuando ingreso al modo de edición, no puedo seleccionar nada. el método willSelectRowAtIndexPath
nunca se dispara, y tampoco lo hace el didSelectRowAtIndexPath
. Lo único que estoy haciendo en el método setEditing
es ocultar el botón Atrás durante la edición y asignar firstResponder
al texto superior para que aparezca el teclado. Pensé que tal vez el primer respondedor se interpusiera en el camino del clic (que sería tonto), pero incluso con ese comentario, no puedo realizar la selección de celda durante la edición.
En Xcode 4.2/iOS5, estos se pueden configurar en TableView en el Interface Builder. –
Lo resolvió seleccionando 'Selección única' en la opción de" selección "del Guión gráfico/Interfaz. ¡GRACIAS! –