我的 tableView 没有触发 didSelectRowAtIndexPath 方法时遇到问题。我已经这样实现了代表:
@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate,UIScrollViewDelegate>
在我的故事板中,tableView 的数据源和委托都指向基础视图控制器。我启用了用户交互以及将选择设置为单选,这不是 TapGesture 问题,因为我的点击手势没有绑定到视图并且我已经检查并且它们没有触发。
这是设置表的代码:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return menuArray.count;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"menuCell"];
NSDictionary *menuItem = [menuArray objectAtIndex:indexPath.row];
cell.textLabel.text = menuItem[@"Title"];
cell.detailTextLabel.text = menuItem[@"Subtitle"];
return cell;
}
-(void)showMenu{
[UIView animateWithDuration:.25 animations:^{
[content setFrame:CGRectMake(menuTable.frame.size.width, content.frame.origin.y, content.frame.size.width, content.frame.size.height)];
}];
}
-(void)hideMenu{
[UIView animateWithDuration:.25 animations:^{
[content setFrame:CGRectMake(0, content.frame.origin.y, content.frame.size.width, content.frame.size.height)];
}];
}
-(IBAction)showMenuDown:(id)sender {
if(content.frame.origin.x == 0)
[self showMenu];
else
[self hideMenu];
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//whatever
}
该表最初在情节提要上看不到(origin.x 设置为 -150),然后当用户单击导航栏中的按钮时,视图滑过以显示它,这可能是导致问题的原因思考。
我的代码或实现有什么问题会导致它不起作用吗?