He insertado un UITableViewController y su correspondiente UITableView en un simple IB documento. El objetivo es incluir a la UITableView dentro de un padre UIWindow (o UIView) con otras «cosas» (nada en realidad) que adornan la mesa. He aquí lo que podría parecer en el Interface Builder.

Se puede añadir un UITableViewController del formato tableview otro punto de Vista?

He intentado esto en numerosas ocasiones y siempre al mismo lugar.

  1. Construir un trabajo subclase de UITableViewController rellenada con los datos de
  2. Personalizar el UTableView y células, incluyendo toque objetivos
  3. Agregar la recién creada UITableViewController en un IB documento
  4. Arrastre el UITableView de la UITableViewController y en el UIView
  5. Alambre hasta el UITableViewController a la UITableView
  6. Nota: la adición de la UITableViewController en el código de los resultados en el mismo problema

Cuando se ejecuta la aplicación en el emulador de iPhone o en un dispositivo de la tabla se muestra correctamente, pero se bloquea la primera vez que trate e interactuar con él. Un desplazamiento, un toque, nada se bloquea la aplicación. Este parece ser un delegado del problema, como la UITableView no sabe cómo comunicarse de nuevo con el UITableViewController, pero no tengo idea de cómo corregir el problema.

Hasta ahora he sido capaz de conseguir por la personalización de la tableHeaderView para obtener diseños que suficiente, pero me gustaría mucho prefiero a la otra técnica de trabajo.

1 Comentario

  1. 32

    Usted está en el camino correcto! Aquí es lo que usted necesita hacer:

    1. Crear un estándar de UIViewController subclase con su acompañante ver xib.

    2. Agregar un UITableView en el XIB.

    3. Alambre de todo. El controlador de vista será el delegado y el origen de datos para la tabla, por lo que debe implementar ambos protocolos.

    4. En su archivo de implementación, agregar todos los recursos de origen de datos y los métodos de delegado necesarios para el formato tableview:

      (UITableViewCell *)tableView:(UITableView *)tv
          cellForRowAtIndexPath:(NSIndexPath *)indexPath

    El archivo de encabezado puede ser algo como esto:

    MyViewController.h

    @interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
    {
        IBOutlet UITableView *myTableView;
        //This outlet is only necessary if you need to send messages to the table view (such as reloadData)
    }
    @end

    Que debemos hacer!

    • Trabajó como un encanto, gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here