我有一个UITableView
作为我的子视图UIScrollVIew
,这是我控制的主视图MainViewController
.
在MainViewController.h中
@interface MainViewController : UIViewController <UIGestureRecognizerDelegate, UITableViewDelegate, UITableViewDataSource>
// other stuff here...
@property (weak, nonatomic) IBOutlet UITableView *myTableView;
在MainViewController.m中
@synthesize myTableView;
// other stuff here...
- (void)viewDidLoad {
myTableView.delegate = self;
myTableView.datasource = self;
}
// other stuff here...
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"listAttributesSegue" sender:self];
}
我知道didSelectRowAtIndexPath
没有被调用,因为我在方法本身和其中的代码行上设置了断点,并且都没有被调用。我还知道数据源工作正常,因为我有其他函数可以在运行时修改单元格,并且它们工作得很好。我使用最新的 Xcode,并将 iOS 5.0 设置为开发目标。我一直在寻找并寻找答案。有人有主意吗?
Edit:我已经找到答案了。我曾有一个UITapGestureRecognizer
为 myTableView 的 superView 设置。这覆盖了选择调用。感谢任何建议可能就是这样的人。在我将其标记为正确之前,您的答案已被删除。
Edit 2:很多人都在评论这个问题,所以我想分享一下。如果您遇到此问题,只需设置myGestureRecognizer.cancelsTouchInView
to false
一切都应该正常。
我已经找到答案了。我为 myTableView 的 superView 设置了 UITapGestureRecognizer。这覆盖了选择调用。感谢任何建议可能就是这样的人。在我将其标记为正确之前,您的答案已被删除。
Set the cancelsTouchesInView
财产给NO
在手势识别器上允许表视图拦截事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)