У меня есть UITableView
в качестве подвид моего UIScrollVIew
, который является основным видом, управляемым моим MainViewController
.didSelectRowAtIndexPath: не называется
В 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
для супервизора myTableView. Это перекрыло вызов выбора. Благодарите любого, кто предположил, что это возможно. Ваш ответ был удален, прежде чем я смог отметить его правильно.
Редактировать 2: Многие люди комментируют это, поэтому, хотя я бы поделился им. Если вы столкнулись с этой проблемой, просто установите myGestureRecognizer.cancelsTouchInView
в false
, и все должно работать нормально.
Вы реализовали 'tableView: willSelectRowAtIndexPath:'? Возможно, он возвращает nil, тем самым предотвращая вызов 'didSelectRowAtIndexPath:' от вызова? –
да Я тоже попробовал – Garrett
Спасибо, что вернулись с вашим решением. Я думаю, что лучше было бы отредактировать это как ответ. –