Search code examples
iosiphonetableviewcell

iPhone SDK: Opening a cell with a dedicated button, not by cell tapping


I have a simple TableView containing several cells. Normally, I switch to selected cell details by tapping this cell. But what if I need a dedicated button for every cell? I've seen "Table View Cell" properties in Interface Builder, it has what I need, but it can't be added to existing cells.

How to properly add this kind of button to every cell of standard TableView?


Solution

  • I do something similar in an app I am working on right now. I have a cell that has a button on it, and I need to know which button was pushed in which cell. I do that like this..

    I add my button to each cell..

    // add buy button to each cell
    UIImage *image;
    buyButton = [UIButton buttonWithType:UIButtonTypeCustom];
    image = [UIImage imageNamed:@"buy.png"];
    [buyButton setBackgroundImage:image forState:UIControlStateNormal];
    buyButton.frame = CGRectMake(220, 35, 96, 34);
    [buyButton setTag:cellIndex];
    [buyButton addTarget:self action:@selector(buyTickets:) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:buyButton];
    

    The method used to determine which "button" in which cell was selected, I then push another view controller with the information of the selected button...

    // buy tickets button pressed from main table view 
    - (void) buyTickets:(id)sender{
    
    
        ResultViewController *vc = [[ResultViewController alloc] init];
        vc.buyMovieID = [sender tag]; // "sender tag" is the cell id the button is located in
        [[super navigationController] pushViewController:vc animated:YES];
        [vc release];
    }
    

    This is what the button looks like on each cell. Hope this helps!

    P.S. Tapping on the CELL, would push another view controller, but tapping on "Buy Tickets" button pushes a different one.

    alt text http://luistovar.com/ultratableview.jpg