我在菜单抽屉中使用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];
}
帮助赞赏。
问题是已解决,
我正在移动基本视图,因此所有交互都是基于x位置从220开始因此表视图交互不起作用,我更改了故事板中的视图层次结构并使用bringSubviewToFront
方法查看让它工作。
谢谢:)
答案 0 :(得分:3)
如果didSelectRowAtIndexPath
未获得,则可能是以下原因之一。
UIView
。allowsSelectionDuringEditing
是flase
。答案 1 :(得分:0)
你需要检查一些事情:
如果我们从其他视图控制器复制tableview而不是委托&数据源链接已经存在,但指向旧的视图控制器。所以需要删除链接&再次建立连接
还要确保您没有在您的.h文件中放置UITableViewDelegate协议,因为您已在故事板上链接
如果仍然无法清理您的项目&删除委托方法,而不是将光标放在UITableview按窗口键。您将被重定向到tableview&的委托方法页面。从它复制委托方法&把它放在你的代码中。
(注意:不要从任何地方复制委托方法,其良好做法是直接从委托部分页面复制它。)
希望这可以帮助您解决问题。