can someone please help me turn this into a grouped table view

Discussion in 'iOS Programming' started by geiger10d, Feb 27, 2011.

  1. geiger10d macrumors member

    Joined:
    Jan 31, 2011
    #1
    hi can someone take a look at this code and tell me how i can make it a grouped table view?

    i changed the nib for this to a grouped table view as well.




    Code:
    
    
    - (void)viewDidLoad {
    	
    
    	[super viewDidLoad];
    	
    	
    
    	
    	self.title = NSLocalizedString(@"Settings", @"my settings");
    
    	
    	
    		 NSMutableArray *array = [[NSArray alloc] initWithObjects:@"Follow Us",@"Like Us",@"Email",nil];
    		 self.settingsArray = array;
    		[array release];
    	
    	
    
    	
        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem;
    }
    
    
    
    
    
    /*
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
    }
    */
    /*
    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
    }
    */
    /*
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
    }
    */
    /*
    - (void)viewDidDisappear:(BOOL)animated {
        [super viewDidDisappear:animated];
    }
    */
    /*
    // Override to allow orientations other than the default portrait orientation.
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        // Return YES for supported orientations.
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    */
    
    
    #pragma mark -
    #pragma mark Table view data source
    
    
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        // Return the number of sections.
        return 1;
    }
    
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        // Return the number of rows in the section.
        return [self.settingsArray count];
    }
    
    
    // Customize the appearance of table view cells.
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    	
        
        static NSString *CellIdentifier = @"Cell";
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
        }
        
        // Configure the cell...
    	
    	NSUInteger row= [indexPath row];
    	cell.textLabel.text = [settingsArray objectAtIndex:row];
        
    
    	
    	
    	cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    	if ([cell.textLabel.text isEqualToString:@"Like Us"]) {
    		[cell.imageView setImage:[UIImage imageNamed:@"facebook.png"]];
    		cell.detailTextLabel.text = @"Our Facebook";
    	}
    		
    	cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    	if ([cell.textLabel.text isEqualToString:@"Follow Us"]) {
    			[cell.imageView setImage:[UIImage imageNamed:@"twitter.png"]];
    		cell.detailTextLabel.text = @"Our Twitter";
    	}
    	
    	cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    	if ([cell.textLabel.text isEqualToString:@"Email"]) {
    		[cell.imageView setImage:[UIImage imageNamed:@"email.png"]];
    		cell.detailTextLabel.text = @"Our Email";
    	}
    	return cell;
    	
    }
    
    
    
    
    /*
    // Override to support conditional editing of the table view.
    - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
        // Return NO if you do not want the specified item to be editable.
        return YES;
    }
    */
    
    
    /*
    // Override to support editing the table view.
    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
        
        if (editingStyle == UITableViewCellEditingStyleDelete) {
            // Delete the row from the data source.
            [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        }   
        else if (editingStyle == UITableViewCellEditingStyleInsert) {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
        }   
    }
    */
    
    
    /*
    // Override to support rearranging the table view.
    - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
    }
    */
    
    
    /*
    // Override to support conditional rearranging of the table view.
    - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
        // Return NO if you do not want the item to be re-orderable.
        return YES;
    }
    */
    
    
    #pragma mark -
    #pragma mark Table view delegate
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    	//- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    		// Navigation logic may go here. Create and push another view controller.
    		/*
    		 <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
    		 // ...
    		 // Pass the selected object to the new view controller.
    		 [self.navigationController pushViewController:detailViewController animated:YES];
    		 [detailViewController release];
    		 */
    	
    	//NSInteger row = [indexPath row];
    	//NSUInteger section = [indexPath indexAtPosition:0];
    	//SettingsTableViewController	*settingsTableViewController = [[SettingsTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
    	//settingsTableViewController.title = [NSString stringWithFormat:@"%@", [[settingsArray objectAtIndex:section] objectAtIndex:row]];	
    				
    		NSMutableString *settingName = [NSMutableString string];
    	
    		[settingName setString:[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text]];
    		[settingName replaceOccurrencesOfString:@" " withString:@"" options:0 range:NSMakeRange(0, [settingName length])];
    		[settingName appendFormat:@"ViewController"];
    		
    		id newViewController = [[objc_getClass([settingName cStringUsingEncoding:NSUTF8StringEncoding]) alloc] init];
    		[self.navigationController pushViewController:newViewController animated:YES];
    }
    	
    #pragma mark -
    #pragma mark Memory management
    
    - (void)didReceiveMemoryWarning {
        // Releases the view if it doesn't have a superview.
        [super didReceiveMemoryWarning];
        
        // Relinquish ownership any cached data, images, etc. that aren't in use.
    }
    
    - (void)viewDidUnload {
        // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
        // For example: self.myOutlet = nil;
    }
    
    
    - (void)dealloc {
    
        [super dealloc];
    }
    
    
    @end
    
     
  2. cnstoll macrumors 6502

    Joined:
    Aug 29, 2010
    #2
    Wherever you instantiate the table view controller:

    Code:
    UITableViewController *controller = [[[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease];
     
  3. ClutchThese macrumors 65816

    ClutchThese

    Joined:
    Jun 25, 2010
    Location:
    Alexandria, VA
    #3
    initWithStyle:UITableViewCellStyleValue1

    change that to StyleGrouped
     

Share This Page