UITableView in UIView

  • UITableView in UIView

    ich möchte einen UITableView in einem UIView haben, der nicht die komplette Größe ausnutzt, weil ich in dem freien bereich noch andere sachen mit bezug zum TableView machen möchte.

    ich füge den TableView in meinem UIView wie folgt hinzu

    Quellcode

    1. ArtikelViewController *artikelVC = [[ArtikelViewController alloc] initWithStyle:UITableViewStylePlain];
    2. CGRect viewFrame = self.view.frame;
    3. viewFrame.origin = CGPointMake(20, 100);
    4. viewFrame.size.height = 500;
    5. viewFrame.size.width = 728;
    6. artikelVC.view.frame = viewFrame;
    7. [self.view addSubview:artikelVC.tableView];


    wenn ich nun die app starte, wird der TableView angezeigt, die INIT und die viewDidLoad Methoden des ArtikelViewController werden aufgerufen, aber ansonsten werden keine Methoden des ArtikelViewController gestartet und somit auch keine Daten ausgegeben. ich habe dem TableView sicher noch nicht richtig gesagt, dass er ein TableView ist, aber ich weiß im moment leider nicht wie ich das machen soll. hat jemand einen tipp für mich? ?(
  • Warum baust Du Dir nicht den View im Interface Builder zusammen? Den Tableview von seinem Viewcontroller zu trennen, ist auf diese Art zumindest sehr fehlerträchtig (Dangling Pointer).

    BTW: Zeile 2 bis 6 kannst Du durch artikelVC.view.frame = CGRectMake(20, 100, 500, 728); ersetzen. Das Auslesen der Property frame macht da keinen Sinn.
    „Meine Komplikation hatte eine Komplikation.“
  • irgendwie bin ich gerade zu doof.

    wenn ich im storyboard

    1. einen neuen TableViewController erstelle, ist der immer fullscreen und ich kann es nicht ändern.
    2.wenn ich ein neues projekt anlege und auf den "ViewController" einen TableView ziehe, dann bin ich doch bei der trennung so wie es hatte.

    also muss die lösung doch sein, dass ich die größe des TableView unter 1. ändere oder?
  • bastl schrieb:

    2.wenn ich ein neues projekt anlege und auf den "ViewController" einen TableView ziehe, dann bin ich doch bei der trennung so wie es hatte.

    Nein, dann hast Du einen Viewcontroller, der einen View mit einem Tableview enthält. Wenn Du zu der Klasse des Viewcontrollers die Protokolle UITableViewDataSource und UITableViewDelegate hinzufügst und die Elemente entsprechend verbindest, kannst Du Deinen Viewcontroller dafür verwenden.

    Alternativ kannst Du unter iOS 6 auch Viewcontroller über den Interface Builder in einen View einbetten.
    „Meine Komplikation hatte eine Komplikation.“