我创建了一个包含UITableViewController
的框架。出于某种原因,当我使用这个框架并创建这个VC时,它会完美地加载,并且数据源方法工作得很好,看起来就像它应该的那样。但是,当我点击细胞时,绝对没有任何反应。我知道它应该工作,因为当我在框架中使用这个VC时,它工作正常。
我只为NSLog
设置了didSelectRowAtIndexPath
个语句,但它们根本没有被调用。为什么不使用框架中的VC使{{1}}不被调用?
编辑:我发现这个问题与我正在使用的SlidingNavigationController有关。
具体来说,如果我在didSelectRowAtIndexPath
中使用以下代码,那么一切正常:
applicationDidFinishLaunchingWithOptions
但是,如果我在项目中的任何其他位置使用该SAME代码(例如, 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
?
答案 0 :(得分:0)
好的,我的回答是,如果您的UITableViewDelegate
方法已在MenuViewController
中实施,请删除以下代码。
leftMenu.tableView.delegate = self;
并在MenuViewController
内部告诉tableView
self
是代表,如:
// in MenuViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.delegate = self;
}