Soy bastante nuevo para el iPhone de desarrollo y han luchado para encontrar lo que yo considero que es una buena manera de evitar este problema.

Tengo una interfaz de usuario donde un resumen de registro de datos se muestran en una tabla dentro de un controlador de navegación. Cuando el usuario hace clic en el botón accesorio para una fila, un nuevo punto de vista se inserta en la navegación controlador de revelar una vista en la que el usuario puede modificar los datos en el registro correspondiente. Una vez hecho esto, la vista de edición se apareció a partir de la navegación del controlador de la pila y el usuario es devuelto a la vista de tabla.

Mi problema es que cuando el usuario regresa a la vista de la tabla, la tabla muestra el estado de los datos antes de que el disco fue editado. Por lo tanto, debe volver a cargar los datos de la tabla para mostrar los cambios.

No parece posible para volver a cargar los datos de la tabla antes de que se muestre como la llamada sólo actualizaciones de registros mostrados. Recarga después de la tabla de resultados que se muestra en los datos antiguos que cambia ante los ojos del usuario, que no estoy demasiado contento con el.

Esto me parece bastante normal, cosa que queramos hacer en una aplicación para el iPhone.

Puede alguien por favor sugieren que el enfoque de mejores prácticas para hacer esto? Me siento como que me falta algo.

Saludos – Steve.

InformationsquelleAutor Steve Neal | 2010-04-18

2 Comentarios

  1. 13

    Me gustaría implementar esto en la siguiente forma:

    1. Guardar indexPath de un hecho clic en la celda.

    2. Implementar -[UIViewController viewWillAppear:] método de la vista controlador, el cual contiene la UITableView. Si guarda indexPath no es nil, recarga de celdas especificadas con:

      -[UITableView reloadRowsAtIndexPaths:withRowAnimation:]

  2. 16

    El enfoque estándar puede sonar como un montón de problemas al principio, pero es un útil modelo para un montón de situaciones.

    En su formato tableview clase crear un método como:

    -(void)editDone {
        [self.tableView reloadData];
    }

    Agregar una propiedad a su controlador de edición como:

    @property (assign) id delegate;

    Establecer el delegado cuando el accesorio se hace clic en:

    editController.delegate = self;

    Y cuando termine la edición, llame a su método así:

    [delegate performSelector:@selector(editDone) withObject:nil];

    Puede crear métodos similares para manejar cancelar de su componente de edición, o para llevar a cabo despidiendo de modal editar controladores, etc. Se considera más elegante para poner todo esto en un protocolo, si te gusta.

Dejar respuesta

Please enter your comment!
Please enter your name here