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