iosobjective-ciphoneuitableviewthree20

didSelectRowAtIndexPath not being called with TTTableViewController


The challenge: I'd like to do some action if the user touches a TableItem.

The problem: The didSelectRowAtIndexPath method is never called? Did I miss something?


PortfolioViewController.h

@interface PortfolioViewController : TTTableViewController <TTTableViewDelegate> 
{

}

@end

PortfolioViewController.m

@implementation PortfolioViewController

- (id)init {
 if (self = [super init]) {
  self.title = @"Portfolio";
  self.tableViewStyle = UITableViewStylePlain;
  self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth| UIViewAutoresizingFlexibleHeight;
  self.variableHeightRows = YES;  

  PortfolioDataSource *ds = [[[PortfolioDataSource alloc] init] autorelease];
  CasesModel *cm = [[[CasesModel alloc] init] autorelease];
  ds.model = cm; 

  self.dataSource = ds;
 }
 return self;
}

#pragma mark -
#pragma mark Table Delegate Methods
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
 NSLog(@"touched");
}

@end

Solution

  • You don't need to change the delegate for simple operations. Just implement this method in your controller:

    - (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath;
    

    Source: I do it... and the three20 source file