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

  • SEARCH
  • Home
  • 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 6391659
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T03:43:10+00:00 2026-05-25T03:43:10+00:00

I have build a grouped tableview with 2 sections. There always have to be

  • 0

I have build a grouped tableview with 2 sections.

There always have to be 1 selection in each of the sections, and there can’t be more.

This is working rock steady when testing on the iPad.

I recently started developing the xib for the iPhone version.

Now things start getting weird. When scrolling the selections fly all over the place, disappears, and sometimes there are 4 selections in a section.

The exact same code is working flawlessly on the iPad.

Is there any known bugs that might make this occur?

UPDATED WITH CODE:

        - (void)viewDidLoad
    {


         [super viewDidLoad];
         self.view.backgroundColor = [UIColor whiteColor]; 

    //Initialize the array.
    listOfItems = [[NSMutableArray alloc] init];

    NSArray *countriesToLiveInArray = [NSArray arrayWithObjects:@"Baskerville", @"Palatino", @"Times New Roman", @"Verdana", nil];

    NSDictionary *countriesToLiveInDict = [NSDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"];

    NSArray *countriesLivedInArray = [NSArray arrayWithObjects:@"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", @"My Text", nil];

    NSDictionary *countriesLivedInDict = [NSDictionary dictionaryWithObject:countriesLivedInArray forKey:@"Countries"];

    [listOfItems addObject:countriesToLiveInDict];
    [listOfItems addObject:countriesLivedInDict];

    //Set the title
    self.navigationItem.title = @"Countries";  

}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];    

     NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    //SET Font 
    NSString *neverOpendFonts1 = [prefs objectForKey:@"neverOpendFonts1"];  

    if (![neverOpendFonts1 isEqualToString:@"1"]) {


            lastIndexPath1 = [NSIndexPath indexPathForRow:1 inSection:0];

            UITableViewCell *newCell = [myTableView cellForRowAtIndexPath:lastIndexPath1]; 

            newCell.accessoryType = UITableViewCellAccessoryCheckmark; 

            NSString *lastIndexPathString1 = [NSString stringWithFormat:@"1"];

            [prefs setObject:lastIndexPathString1 forKey:@"lastIndexPath1"];

            NSString *fontName = [NSString stringWithFormat:@"Palatino"];

            [prefs setObject:fontName forKey:@"fontName"];

            neverOpendFonts1 = [NSString stringWithFormat:@"1"];

            [prefs setObject:neverOpendFonts1 forKey:@"neverOpendFonts1"];

            [prefs synchronize];


    }

    else
    {
        NSInteger row = [[prefs objectForKey:@"lastIndexPath1"] intValue];

        lastIndexPath1 = [NSIndexPath indexPathForRow:row inSection:0];

        UITableViewCell *newCell = [myTableView cellForRowAtIndexPath:lastIndexPath1]; 

        newCell.accessoryType = UITableViewCellAccessoryCheckmark; 

    }

 //SET Font SIZE

    NSString *neverOpendFonts2 = [prefs objectForKey:@"neverOpendFonts2"];  

    if (![neverOpendFonts2 isEqualToString:@"1"]) {


        lastIndexPath2 =[NSIndexPath indexPathForRow:2 inSection:1];

        UITableViewCell *newCell = [myTableView cellForRowAtIndexPath:lastIndexPath2]; 

        newCell.accessoryType = UITableViewCellAccessoryCheckmark; 

        NSString *lastIndexPathString2 = [NSString stringWithFormat:@"2"];

        [prefs setObject:lastIndexPathString2 forKey:@"lastIndexPath2"];

        NSString *fontSize = [NSString stringWithFormat:@"24.0"];  

        [prefs setObject:fontSize forKey:@"fontSize"];

        neverOpendFonts2 = [NSString stringWithFormat:@"1"];

        [prefs setObject:neverOpendFonts2 forKey:@"neverOpendFonts2"];

        [prefs synchronize];

    }

    else
    {

        NSInteger row2 = [[prefs objectForKey:@"lastIndexPath2"] intValue];

        lastIndexPath2 = [NSIndexPath indexPathForRow:row2 inSection:1];

        UITableViewCell *newCell2 = [myTableView cellForRowAtIndexPath:lastIndexPath2]; 

        newCell2.accessoryType = UITableViewCellAccessoryCheckmark; 


    }

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    //Number of rows it should expect should be based on the section
    NSDictionary *dictionary = [listOfItems objectAtIndex:section];
    NSArray *array = [dictionary objectForKey:@"Countries"];
    return [array count];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return [listOfItems count];
}

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


    static NSString *CellIdentifier = @"Cell";

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

    // Set up the cell...

    //First get the dictionary object
    NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
    NSArray *array = [dictionary objectForKey:@"Countries"];
    NSString *cellValue = [array objectAtIndex:indexPath.row];
    cell.textLabel.text = cellValue;

    if (indexPath.section == 0)
    {
        switch (indexPath.row) {
            case 0:
            {
             cell.textLabel.font = [UIFont fontWithName:@"Baskerville" size:24];   
            }
                break;
            case 1:
            {
              cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:24];    
            }
                break;
            case 2:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Times New Roman" size:24];  
            }
                break;
            case 3:
            {
               cell.textLabel.font = [UIFont fontWithName:@"Verdana" size:24];   
            }
                break;
        }

    }
    if (indexPath.section == 1) {

        switch (indexPath.row) {
            case 0:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:16];   
            }
                break;
            case 1:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:20];    
            }
                break;
            case 2:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:24];  
            }
                break;
            case 3:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:28];   
            }
                break;
            case 4:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:32];   
            }
                break;
            case 5:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:36];   
            }
                break;
            case 6:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:40];   
            }
                break;
            case 7:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:44];   
            }
                break;
            case 8:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:48];   
            }
                break;
            case 9:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:52];   
            }
                break;
            case 10:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:56];   
            }
                break;
            case 11:
            {
                cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:60];   
            }
                break;
        }


    }


    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   // CGFloat result;

    if (indexPath.section == 0)
    {
        return 50;

    }
    if (indexPath.section == 1) {

        switch (indexPath.row) {
            case 0:
            {
                return 50;   
            }
                break;
            case 1:
            {
                return 50;    
            }
                break;
            case 2:
            {
                return 50;  
            }
                break;
            case 3:
            {
                return 50;   
            }
                break;
            case 4:
            {
                return 50;   
            }
                break;
            case 5:
            {
                return 50;   
            }
                break;
            case 6:
            {
                return 50;   
            }
                break;
            case 7:
            {
                return 54;   
            }
                break;
            case 8:
            {
                return 58;   
            }
                break;
            case 9:
            {
                return 62;
            }
                break;
            case 10:
            {
                return 66;
            }
                break;
            case 11:
            {
                return 70;  
            }
                break;
        }


    }
    return 50;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

    if (section == 0) {
        return @"Font";
    }
    if (section == 1) {
        return @"Font Size";
    }
    else if (!section == 0 || !section == 1) {
        return @"Text";
    }
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath]; 

    NSInteger newRow = [indexPath row];

    if (indexPath.section == 0) {

        NSString *fontName;

        switch (indexPath.row) {
            case 0:
            {
                fontName = [NSString stringWithFormat:@"Baskerville"];   

            }
                break;
            case 1:
            {
               fontName = [NSString stringWithFormat:@"Palatino"];    

            }
                break;
            case 2:
            {
               fontName = [NSString stringWithFormat:@"Times New Roman"];  

            }
                break;
            case 3:
            {
                fontName = [NSString stringWithFormat:@"Verdana"];  


            }
                break;
        }

        NSInteger oldRow = (lastIndexPath1 != nil) ? [lastIndexPath1 row] : -1; 

        if(newRow != oldRow) 
        { 
            newCell.accessoryType = UITableViewCellAccessoryCheckmark; 
            UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:lastIndexPath1]; 
            oldCell.accessoryType = UITableViewCellAccessoryNone;
            lastIndexPath1 = indexPath; 
        }   


        NSInteger lastRow = lastIndexPath1.row;

        NSString *lastIndexPathString = [NSString stringWithFormat:@"%i", lastRow];

        [prefs setObject:lastIndexPathString forKey:@"lastIndexPath1"];

        [prefs setObject:fontName forKey:@"fontName"];

        [prefs synchronize];

        [tableView deselectRowAtIndexPath:indexPath animated:YES];
    }

    if (indexPath.section == 1) {

        NSString *fontSize;

        switch (indexPath.row) {
            case 0:
            {
               // cell.textLabel.font = [UIFont fontWithName:@"Palatino" size:16];  

                fontSize = [NSString stringWithFormat:@"16.0"];   

               // UITableViewCell *newCell =[tableView cellForRowAtIndexPath:indexPath];
               // newCell = [tableView  cellForRowAtIndexPath:indexPath];
               // newCell.accessoryType = UITableViewCellAccessoryCheckmark;

            }
                break;
            case 1:
            {
            fontSize = [NSString stringWithFormat:@"20.0"];   


            }
                break;
            case 2:
            {
            fontSize = [NSString stringWithFormat:@"24.0"];   


            }
                break;
            case 3:
            {
            fontSize = [NSString stringWithFormat:@"28.0"];   


            }
                break;
            case 4:
            {
            fontSize = [NSString stringWithFormat:@"32.0"];   


            }
                break;
            case 5:
            {
            fontSize = [NSString stringWithFormat:@"36.0"];   


            }
                break;
            case 6:
            {
            fontSize = [NSString stringWithFormat:@"40.0"];   


            }
                break;
            case 7:
            {
            fontSize = [NSString stringWithFormat:@"44.0"];   


            }
                break;
            case 8:
            {
            fontSize = [NSString stringWithFormat:@"48.0"];   


            }
                break;
            case 9:
            {
            fontSize = [NSString stringWithFormat:@"52.0"];   


            }
                break;
            case 10:
            {
            fontSize = [NSString stringWithFormat:@"56.0"];   


            }
                break;
            case 11:
            {
            fontSize = [NSString stringWithFormat:@"60.0"];   

            }
                break;
        }

        NSInteger oldRow = (lastIndexPath2 != nil) ? [lastIndexPath2 row] : -1; 

        if(newRow != oldRow) 
        { 
            newCell.accessoryType = UITableViewCellAccessoryCheckmark; 
            UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:lastIndexPath2]; 
            oldCell.accessoryType = UITableViewCellAccessoryNone;
            lastIndexPath2 = indexPath; 
        }   


        NSInteger lastRow2 = lastIndexPath2.row;

        NSString *lastIndexPathString2 = [NSString stringWithFormat:@"%i", lastRow2];

        [prefs setObject:lastIndexPathString2 forKey:@"lastIndexPath2"];

        //NSString *lastIndexPathString = [NSString stringWithFormat:@"@%", lastIndexPath2];

        //[prefs setObject:lastIndexPathString forKey:@"lastIndexPath2"];


        [prefs setObject:fontSize forKey:@"fontSize"];

        [prefs synchronize];

        [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

    }



}
  • 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-25T03:43:11+00:00Added an answer on May 25, 2026 at 3:43 am

    TSolved the problem… Got my answer on iphonedevsdk.com…

    I added

    if([self.lastIndexPath1 isEqual:indexPath])
    {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
    else
    {
    cell.accessoryType = UITableViewCellAccessoryNone;
    }

    to the cellForRowAtIndexPath

    and added

    if(self.lastIndexPath1)
    {
    UITableViewCell* uncheckCell = [tableView
    cellForRowAtIndexPath:self.lastIndexPath1];
    uncheckCell.accessoryType = UITableViewCellAccessoryNone;
    }
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
    self.lastIndexPath1 = indexPath;
    }

    to didSelectRowAtIndexPath…

    I removed the old `/*

        NSInteger oldRow = (lastIndexPath1 != nil) ? [lastIndexPath1 row] : -1; 
    
        if(newRow != oldRow) 
        { 
            newCell.accessoryType = UITableViewCellAccessoryCheckmark; 
            UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:lastIndexPath1]; 
            oldCell.accessoryType = UITableViewCellAccessoryNone;
            lastIndexPath1 = indexPath; 
        }   
    
               */`
    

    from didSelectRow, and now everything works perfectly…

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am working on flex dasboards and charting stuff. Till now I have build
I'm working with WPF and EF 4.2 to build a desktop application. I have
This must be simple, yet I can't seem to find an answer. I have
I have a plain (not grouped) tableView with custom cells, and when I hit
This question can have different answers because everyone would do it his own way.
I have this command in a post build event: if $(ConfigurationName) == Release $(SolutionDir)Tools\NuGet.exe
I have build server inside our domain (and it needs to be because it
I have build C# program that work with RAPI (communication to PPC or WinCE)
I have build a webapplication using ASP.NET MVC and JQuery. On my local machine
I have a build script and as part of that script it copies a

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.