UITableView委托没有被调用

时间:2014-12-18 11:31:47

标签: ios objective-c uitableview

我在菜单抽屉中使用UITableView并在单击菜单按钮时更改UITableView的位置。

UITableViewDataSource正在运行,UITableViewDelegate无效。 我仍然从故事板和内部视图控制器设置委托 didSelectRowAtIndexPath没有被调用。

-(void) showMenu{
isMenuShown = YES;
        [_drawerButton setImage:[UIImage imageNamed:@"v_drawer_menu"]];
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        self.view.frame = CGRectMake(220, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
        _tableView.frame = CGRectMake(0, self.view.frame.origin.y, 220, self.view.frame.size.height);
        self.menuView.frame = CGRectMake(0, self.view.frame.origin.y, 220, self.view.frame.size.height);
        _menuView.userInteractionEnabled = YES;
        _tableView.userInteractionEnabled = YES;
        _tableView.delegate = self;

        [UIView commitAnimations];
}

The view and table view I am moving them upon toggle. 帮助赞赏。

问题是已解决

我正在移动基本视图,因此所有交互都是基于x位置从220开始因此表视图交互不起作用,我更改了故事板中的视图层次结构并使用bringSubviewToFront方法查看让它工作。

谢谢:)

2 个答案:

答案 0 :(得分:3)

如果didSelectRowAtIndexPath未获得,则可能是以下原因之一。

  1. 委托未设置。据我所知,这是对文件所有者的正确设置。
  2. 表格视图单元格中可能有一个UI控件,其大小与单元格大小相同。
  3. 可以响应响应者链中的触摸的UIView
  4. 或者表格视图allowsSelectionDuringEditingflase

答案 1 :(得分:0)

你需要检查一些事情:

  • 如果我们从其他视图控制器复制tableview而不是委托&数据源链接已经存在,但指向旧的视图控制器。所以需要删除链接&再次建立连接

  • 还要确保您没有在您的.h文件中放置UITableViewDelegate协议,因为您已在故事板上链接

  • 如果仍然无法清理您的项目&删除委托方法,而不是将光标放在UITableview按窗口键。您将被重定向到tableview&的委托方法页面。从它复制委托方法&把它放在你的代码中。

(注意:不要从任何地方复制委托方法,其良好做法是直接从委托部分页面复制它。)

希望这可以帮助您解决问题。