Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6184971
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T01:37:54+00:00 2026-05-24T01:37:54+00:00

I need help figuring out which Accessory Type Switch has been changed. I have

  • 0

I need help figuring out which Accessory Type Switch has been changed.

I have a list of games in a UITableView. I’ve added a UISwitch as an accessory type, and each switch reacts to touch, changing its state and notifying its action receiver.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:@"cell"];
if(nil == cell){
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"cell"]autorelease];

}


Games *games=[appDelegate.hidden objectAtIndex:indexPath.row];
cell.textLabel.text = games.gameName;

//the switch is defined here, as is its target-action

testSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0.0, 0.0, 74.0, 27.0)];
[testSwitch addTarget:self action:@selector(button_Clicked:)
     forControlEvents:UIControlEventValueChanged];

//If I used the tags
    testSwitch.tag=indexPath.row;

[testSwitch setOn:YES];
cell.accessoryView=testSwitch;


[games release];

return cell;
}

And the target-action: see comments

- (void)button_Clicked:(id)sender{
    UISwitch* switchControl = sender; //if I make this an int, the switches 
                //have different numbers.  If it's cast as a string, it's gobbledegook.

//This always returns 0.  I can't tell it it's not getting anything (ie it's 
                // nil), or if the row always comes up 0.

    UITableViewCell *cell = (UITableViewCell *)[sender superview];
    NSIndexPath *x=[table indexPathForCell:cell];
    NSLog(@"%i",x.row);


}

I see two potential problems. One, I need to make a switch for every row, uniquely named. Two, I’m not getting the cell correctly.

If anyone can see my mistake(s), any help is welcome.

I’ve looked through everything I can find on stackoverflow, and several pages into 5 or 6 different search queries on Google, the two above examples in the target-action method are the best I’ve found.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T01:37:54+00:00Added an answer on May 24, 2026 at 1:37 am

    Try this

    set a tag like testSwitch.tag = indexpath.row in your cellForRowAtIndexPath

    then in your button clicked event

    UISwitch *tswitch = (UISwitch *)sender;
    
    int row = tswitch.tag;
    
    NSlog(@"Your selected array value :%@",[your array objectatindex:row]);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Need help in figuring out a tool which can convert a flash (.swf) chart
I need help figuring out how to accomodate situations in which $hash {$i} is
Need help figuring this out. Have a product model: class Product :name :short_description :price
Need help in figuring out a way to fetch a particular block of content
I need some help figuring out why the following scenario does not work. I'm
I have been tasked with figuring out a state space for a problem based
I need help figuring out these php print (echo) statements and where to place
Need some php help in figuring out how use this array I created, but
I need some help figuring out the best way to proceed with creating a
I'm fairly new to Java, and I need some help figuring out a good

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.