didSelectRowAtIndexPath: не вызывается
у меня есть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, установленной в качестве цели разработки. Я искал и искал ответ. У кого-нибудь есть идеи?
Редактировать: Я нашел ответ. у меня былUITapGestureRecognizer
установить для superView myTableView. Это перевесило вызов выбора. Отдайте должное тому, кто это предположил. Ваш ответ был удален, прежде чем я смог пометить его как правильный.
Изменить 2: Многие люди комментируют это, поэтому я хотел бы поделиться этим. Если вы столкнулись с этой проблемой, просто установитеmyGestureRecognizer.cancelsTouchInView
вfalse
и все должно работать нормально.