[iOS] – Dem Fenster einen TableView(Controller) hinzufügen

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

  • [iOS] – Dem Fenster einen TableView(Controller) hinzufügen

    Hallo Community!

    Ich habe ein großes Problem, dessen Fehler ich leider nicht finden kann..
    Undzwar füge ich in der AppDelegate.m in der Delegate-Methode applicationDidFinishLaunching dem Fenster per [self.window addSubview: self.viewController.tableView]; einen neuen TableView hinzu (self.viewController ist eine von UITableViewController abgeleitete Klasse).
    Wenn ich das Programm starte bekomme ich aber genau an der Stelle folgende Fehlermeldung: Thread 1: Program received signal: "SIGABRT".
    Ich versteh allerdings nicht wieso... :(
    Auch ein self.window.rootViewController = self.viewController; oder ein [self.window addSubview: self.viewController.view]; bringt diese Fehlermeldung.

    Weiß jemand woran das liegt?
  • 2011-08-31 12:47:32.510 ServerPing Tool[2322:b303] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "ServerPing_ToolViewController" nib but didn't get a UITableView.'
    *** Call stack at first throw:
    (
    0 CoreFoundation 0x00ef95a9 __exceptionPreprocess + 185
    1 libobjc.A.dylib 0x0104d313 objc_exception_throw + 44
    2 CoreFoundation 0x00eb1ef8 +[NSException raise:format:arguments:] + 136
    3 CoreFoundation 0x00eb1e6a +[NSException raise:format:] + 58
    4 UIKit 0x00354e9b -[UITableViewController loadView] + 275
    5 UIKit 0x001fb00e -[UIViewController view] + 56
    6 UIKit 0x00354862 -[UITableViewController tableView] + 35
    7 ServerPing Tool 0x00002420 -[ServerPing_ToolAppDelegate application:didFinishLaunchingWithOptions:] + 128
    8 UIKit 0x0014bc89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
    9 UIKit 0x0014dd88 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
    10 UIKit 0x00158617 -[UIApplication handleEvent:withNewEvent:] + 1533
    11 UIKit 0x00150abf -[UIApplication sendEvent:] + 71
    12 UIKit 0x00155f2e _UIApplicationHandleEvent + 7576
    13 GraphicsServices 0x013d2992 PurpleEventCallback + 1550
    14 CoreFoundation 0x00eda944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    15 CoreFoundation 0x00e3acf7 __CFRunLoopDoSource1 + 215
    16 CoreFoundation 0x00e37f83 __CFRunLoopRun + 979
    17 CoreFoundation 0x00e37840 CFRunLoopRunSpecific + 208
    18 CoreFoundation 0x00e37761 CFRunLoopRunInMode + 97
    19 UIKit 0x0014d7d2 -[UIApplication _run] + 623
    20 UIKit 0x00159c93 UIApplicationMain + 1160
    21 ServerPing Tool 0x00002369 main + 121
    22 ServerPing Tool 0x000022e5 start + 53
    23 ??? 0x00000001 0x0 + 1
    )
    terminate called throwing an exception
  • Laut Projekt verwendest Du für den ServerPing_ToolViewController doch ein XIB.

    Allerdings ist bei diesem XIB der TableView nicht der Haupt-View. Dies ist bei einem TableViewController jedoch erforderlich.

    Wenn Du neben dem TableView noch weitere Views, etc. in dem ViewController verwenden möchtest, dann musst Du einen ViewController und keinen TableViewController verwenden.

    Verwende als Superclass für den ServerPing_ToolViewController mal einen ViewController. Damit Du in dem ViewController ggf. auf den TableView zugreifen kannst, musst Du noch ein UITableView Outlet auf den TableView anlegen.
  • Ups, ich glaub da hatte ich was falsch verstanden :P

    Okay, ich hab jetzt ein Outlet auf den TableView gemacht, und es zu einem UIViewController geändert. Funktioniert auch gut, nur wenn man die oberste Zelle markiert und dann ganz oft alles aktualisiert, tritt ein verschwindet auf einmal der letzte Eintrag 8|
    Hab dir das Projekt nochmal zugeschickt.