Tôi có một số UITableView
làm tiểu sử của UIScrollVIew
, là chế độ xem chính được kiểm soát bởi MainViewController
của tôi.didSelectRowAtIndexPath: không được gọi là
Trong MainViewController.h
@interface MainViewController : UIViewController <UIGestureRecognizerDelegate, UITableViewDelegate, UITableViewDataSource>
// other stuff here...
@property (weak, nonatomic) IBOutlet UITableView *myTableView;
Trong 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];
}
Tôi biết rằng didSelectRowAtIndexPath
không được gọi là bởi vì tôi đã đặt breakpoint trên cả hai phương pháp riêng của mình và các dòng mã bên trong nó, và không được gọi. Tôi cũng biết rằng các nguồn dữ liệu đang hoạt động chính xác bởi vì tôi có các chức năng khác mà sửa đổi các tế bào trong thời gian chạy và họ đang làm việc hoàn toàn tốt đẹp. Tôi đang sử dụng Xcode mới nhất với iOS 5.0 được thiết lập làm mục tiêu phát triển. Tôi đã tìm kiếm và tìm kiếm câu trả lời. Ai có ý tưởng gì không?
Chỉnh sửa: Tôi đã tìm thấy câu trả lời. Tôi đã đặt số UITapGestureRecognizer
cho superView của myTableView. Điều này đã vượt qua cuộc gọi lựa chọn. Tín dụng cho bất cứ ai cho rằng đó có thể là nó. Câu trả lời của bạn đã bị xóa trước khi tôi có thể đánh dấu câu trả lời chính xác.
Chỉnh sửa 2: Rất nhiều người đã bình luận về điều này, vì vậy tôi mặc dù tôi sẽ chia sẻ nó. Nếu bạn gặp sự cố này, chỉ cần đặt myGestureRecognizer.cancelsTouchInView
thành false
và mọi thứ sẽ hoạt động tốt.
Bạn đã thực hiện 'tableView: willSelectRowAtIndexPath:'? Có lẽ nó trở về nil do đó ngăn chặn 'didSelectRowAtIndexPath:' từ gọi? –
vâng tôi cũng đã thử điều đó quá – Garrett
Cảm ơn bạn đã quay trở lại với giải pháp của bạn. Tôi nghĩ sẽ tốt hơn nếu đặt bản chỉnh sửa làm câu trả lời. –