0

我創建了一個包含UITableViewController的框架。出於某種原因,當我使用這個框架並創建這個VC時,它完美地加載並且數據源方法工作得很好,而且看起來就像它應該那樣。但是,當我單擊單元格時絕對沒有任何反應。我知道它應該工作,因爲當我在框架中使用這個VC時,它工作正常。didSelectRowAtIndexPath不被框架中的UITableViewController調用

我只是NSLog語句設置爲didSelectRowAtIndexPath,但它們根本不被調用。爲什麼會從框架中使用這個VC使didSelectRowAtIndexPath不被調用?

編輯:我發現這個問題與我使用的SlidingNavigationController有關。

具體來說,如果我在applicationDidFinishLaunchingWithOptions使用下面的代碼,然後一切工作正常:

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; 

不過,如果我使用相同的代碼,其他地方在我的項目(例如,在VC按鈕啓動此storyboard序列),TableView不響應。

將代碼放在didFinishLaunching中有什麼特別之處?

+0

你編程創建'tableview'?你可以分享一些代碼嗎? – casillas

+0

你確認UITableViewDelegate協議嗎? – iMuzahid

+0

@casillas @ Md.Muzahidul伊斯蘭教 - 剛添加了代碼 – Jameson

回答

0

好吧,我的回答是,如果您的UITableViewDelegate方法在MenuViewController實施,然後刪除您的下面的代碼。

leftMenu.tableView.delegate = self;

和內部的MenuViewController告訴tableViewself的委託,如:

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

是的,這已經完成了。我相信我已經將問題限制在SlideNavigationController上 - 當我使用常規NC時,這個問題不會發生。 – Jameson

+0

然後顯示你的'SlideNavigationController'的實現。它是如何實現的? – Shamsiddin

+0

任何偶然鍵入'didDeselectRowAtIndexPath'而不是'didSelectRowAtIndexPath'的機會? – Shamsiddin

相關問題