Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a custom cell in a UITableView, defined by a custom class (.h and .m files). I am able to display the cell, and change the text for each cell in the list, but my custom cell also has buttons in it (two, actually). When I click the button, I need to know which row's button has been clicked. Is there any way to get this within the custom ui cell class?

I hope what I'm requesting is clear. If not, feel free to comment and I'll try to explain as best as possible.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
229 views
Welcome To Ask or Share your Answers For Others

1 Answer

You don't show any code to comment on, but generally speaking you can:

  1. define a tag for each button which represents the table row where the button appears;

  2. when your button action method is called, you can access then the tag property of the button to know which row it was.

       - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
       {
           UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
           if (cell == nil) {
             ...
           }
           ...
           [button setTag:indexPath.row];
           ...
       }
    
    
       - (void)buttonPressedAction:(id)sender
       {
           UIButton *button = (UIButton *)sender;
           int row = button.tag;
       }
    

For a more elaborate solution, have a look at this S.O. thread.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...