0

aufgerufen Ich habe ein Framework erstellt, das eine UITableViewController enthält. Aus irgendeinem Grund, wenn ich dieses Framework verwende und dieses VC erstelle, lädt es perfekt und die Datenquellen-Methoden funktionieren großartig und es sieht genauso aus wie es sollte. Es passiert jedoch absolut nichts, wenn ich auf die Zellen klicke. Ich weiß, dass es funktionieren sollte, denn wenn ich dieses VC NICHT im Framework verwende, funktioniert es gut.didSelectRowAtIndexPath wird nicht von UITableViewController aus dem Framework

Ich habe nur NSLog Anweisungen für didSelectRowAtIndexPath gesetzt, aber sie werden überhaupt nicht aufgerufen. Warum sollte diese VC aus einem Framework didSelectRowAtIndexPath nicht aufgerufen werden?

Edit: Ich entdeckte, dass das Problem etwas mit dem SlidingNavigationController zu tun hat, den ich verwende.

Insbesondere dann, wenn ich den folgenden Code in applicationDidFinishLaunchingWithOptions verwenden, dann funktioniert alles einwandfrei:

NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Lights" ofType:@"bundle"]; 
    NSBundle *lights = [NSBundle bundleWithPath:bundlePath]; 

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:lights]; 
    SlideNavigationController *nc = (SlideNavigationController*)[sb instantiateViewControllerWithIdentifier: @"SlideNavigationController"]; 
    ViewController *vc = [sb instantiateViewControllerWithIdentifier:@"ViewController"]; 

    MenuViewController * _mvc = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle: lights]; 
    [SlideNavigationController sharedInstance].leftMenu = _mvc; 
    [SlideNavigationController sharedInstance].rightMenu = vc; 
    self.window.rootViewController = nc; 

Wenn ich jedoch, dass SAME-Code verwenden irgendwo sonst in meinem Projekt (zum Beispiel eine Schaltfläche in einem VC dass startet diese storyboard Sequenz), die TableView reagiert nicht.

Was ist das Besondere daran, diesen Code in didFinishLaunching zu setzen?

+0

Sie die 'tableview' programmatisch erstellen? Könnten Sie bitte etwas Code teilen? – casillas

+0

Bestätigen Sie das UITableViewDelegate-Protokoll? – iMuzahid

+0

@ casillas @ Md.Muzahidul Islam - soeben den Code – Jameson

Antwort

0

Ok, meine Antwort ist, wenn Ihre UITableViewDelegate Methoden in MenuViewController implementiert sind, dann entfernen Sie Ihren unteren Code.

leftMenu.tableView.delegate = Selbst;

und innerhalb Ihrer MenuViewController informieren Sie Ihren tableView dass self ist delegieren, wie:

// in MenuViewController.m 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.tableView.delegate = self; 
} 
+0

Ja, das ist schon gemacht worden. Ich glaube, ich habe das Problem auf SlideNavigationController beschränkt - wenn ich eine normale NC benutze, passiert dieses Problem nicht. – Jameson

+0

Dann zeigen Sie Ihre 'SlideNavigationController''s Implementierung. Wie wird es umgesetzt? – Shamsiddin

+0

Jede Chance, dass Sie versehentlich 'didDeselectRowAtIndexPath' anstelle von' didSelectRowAtIndexPath' eingegeben haben? – Shamsiddin

Verwandte Themen