Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

didSelectRowAtIndexPath: not being called

I have a UITableView as a subview of my UIScrollVIew, which is the main view controlled by my MainViewController.

In MainViewController.h

@interface MainViewController : UIViewController <UIGestureRecognizerDelegate, UITableViewDelegate, UITableViewDataSource>  // other stuff here...  @property (weak, nonatomic) IBOutlet UITableView *myTableView; 

In 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]; } 

I know that didSelectRowAtIndexPath is not being called because I have set breakpoints on both the method itself and the line of code inside it, and neither is being called. I also know that the datasource is working correctly because I have other functions which modify the cells at runtime and they are working perfectly fine. I am using the latest Xcode with iOS 5.0 set as the development target. I have searched and searched for an answer. Anyone have any ideas?

Edit: I have found the answer. I had a UITapGestureRecognizer set for myTableView's superView. This overrode the selection call. Credit to whoever suggested that that might be it. Your answer was deleted before I could mark it correct.

Edit 2: A lot of people have been commenting about this, so I though I would share it. If you are experiencing this problem, simply set myGestureRecognizer.cancelsTouchInView to false and everything should work fine.

like image 943
Garrett Avatar asked Jan 21 '12 11:01

Garrett


People also ask

What is didSelectRowAt in Swift?

tableView(_:didSelectRowAt:)Tells the delegate a row is selected.

What is Uitableview in Swift?

A view that presents data using rows in a single column.

What is tableView delegate?

Methods for managing selections, configuring section headers and footers, deleting and reordering cells, and performing other actions in a table view.


1 Answers

I have found the answer. I had a UITapGestureRecognizer set for myTableView's superView. This overrode the selection call. Credit to whoever suggested that that might be it. Your answer was deleted before I could mark it correct.

Set the cancelsTouchesInView property to NO on the gesture recogniser to allow the table view to intercept the event.

like image 168
Garrett Avatar answered Oct 05 '22 23:10

Garrett