Unter XCode 4.2 keine Verbindung zu UITableView und UINavigationBar mehr?!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Unter XCode 4.2 keine Verbindung zu UITableView und UINavigationBar mehr?!

    Hallo,

    nun habe ich mich langsam an die Arbeit mit XCode 4.2 gewöhnt und finde manches sogar gut ;-), und wollte mal wieder einen neuen ViewController in das Projekt aufnehmen.
    Dieser sollte nur eine UINavigationBar mit einem UINavigationItem und einem UIBarButtonItem erhalten sowie eine UITableView unmittelbar darunter.

    Ich habe das zusammengeklickt und dann die einzelnen Elemente mit ctrl+Maus in die Headerdatei gezogen und konnte voller Freude sehen, dass Eigenschaften und Actionen wunschgemäß angelegt wurden.
    Noch schnell die Daten für die TableView bereitgestellt und die Klase angepasst und die App gestartet.

    Aber: Keine Navigationbar zu sehen, meine TableView nicht verbunden, obwohl ich die Verbindungen im Source mehrfach überprüft und auch neu erstellt habe.
    Daten sind zu sehen, d.h. es gibt eine TableView, die auf meine Methoden hört, aber es ist nicht die aus dem xib.

    In der Methode

    Quellcode

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    habe ich spaßeshalber mit

    Quellcode

    1. [tableView setFrame:CGRectMake(0, 90, 180, 200)];

    die sichtbare TableView verkleinert und darunter ist alles nur weiß.

    Ein anderer, gleichaussehender Dialog, den ich mit dem alten XCode erstellt habe, läuft bestens, nur der neue nicht!
    Alles sieht perfekt aus, die Daten werden angezeigt, aber TableView und Navigation Bar entziehen sich meinem Zugriff und Ansicht.

    Die XIB-Datei zeigt den Aufbau:
    View
    -- Navigation Bar
    -- -- Navigation Item
    -- -- -- Bar Button Item
    -- Table View

    Die TableView im xib habe ich dann eingefärbt, aber im Emulator sehe ich weiterhin eine andere mit weißem Hintergrund.

    Jetzt hätte ich gewettet, im Internet auf eine Menge Postings zu stoßen, die dasselbe Problem und -hoffentlich- eine Lösung anbieten.

    Leider habe ich aber noch nicht mal das Problem gefunden und komme langsam zu dem Schluss, ich bin ein Ochse vor dem Berg ;(

    Kann es sein, dass ich hier einen total dämlichen Fehler mache?

    Zur Sicherheit die ganze Headerdatei:

    Quellcode

    1. @interface FormGallery : UITableViewController
    2. {
    3. NSMutableArray *liste;
    4. IBOutlet UIView *myView;
    5. IBOutlet UINavigationBar *myNavBar;
    6. IBOutlet UITableView *myTableView;
    7. }
    8. @property(nonatomic, retain) NSMutableArray *liste;
    9. @property(nonatomic, retain) IBOutlet UIView *myView;
    10. @property(nonatomic, retain) IBOutlet UITableView *myTableView;
    11. @property(nonatomic, retain) IBOutlet UINavigationBar *myNavBar;
    12. - (IBAction)didClickOK:(id)sender;
    13. @end
    Alles anzeigen
  • Wenn Du einen UIView und keinen UITableView in einem XIB als MainView verwenden möchtest, weil Du z.B. einen UITableView innerhalb dieses MainViews platzieren möchtest, dann musst Du den ViewController von UIViewController und nicht von UITableViewController ableiten. Der UITableViewController erwartet einen UITableView als MainView und keinen UIView.

    Warum erstellst Du eine eigene UINavigationBar und verwendest keinen UINavigationController?
  • @MCDan:
    Du hast meinen Tag gerettet - vielen Dank!

    Ich wollte in der Tat etwas Platz außerhalb der TableView freihalten und habe daher eine UIView als MainView benutzt.
    An anderer Stelle hate ich das auch schon gemacht, aber beim Vergleichen übersehen, dass die Ableitung in der Tat eine andere war.

    Ohne diesen Tipp hätte ich vermutlich noch am Wochenende gerätselt.... :)