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