cocoaTouch/DetailViewController.m
changeset 3356 3ae3fccb439e
parent 3335 2520ee7a5484
child 3357 3836a31879e7
equal deleted inserted replaced
3355:dc9e61e67484 3356:3ae3fccb439e
     6 //  Copyright 2010 __MyCompanyName__. All rights reserved.
     6 //  Copyright 2010 __MyCompanyName__. All rights reserved.
     7 //
     7 //
     8 
     8 
     9 #import "DetailViewController.h"
     9 #import "DetailViewController.h"
    10 #import "SDL_uikitappdelegate.h"
    10 #import "SDL_uikitappdelegate.h"
       
    11 #import "GeneralSettingsViewController.h"
    11 #import "TeamSettingsViewController.h"
    12 #import "TeamSettingsViewController.h"
    12 #import "GeneralSettingsViewController.h"
    13 #import "WeaponSettingsViewController.h"
       
    14 #import "SchemeSettingsViewController.h"
    13 #import "CommodityFunctions.h"
    15 #import "CommodityFunctions.h"
    14 
    16 
    15 @implementation DetailViewController
    17 @implementation DetailViewController
    16 @synthesize popoverController, controllers;
    18 @synthesize popoverController, controllerNames;
    17 
    19 
    18 
    20 
    19 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
    21 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
    20 	return rotationManager(interfaceOrientation);
    22 	return rotationManager(interfaceOrientation);
    21 }
    23 }
    22 
    24 
    23 - (void)viewDidLoad {
    25 - (void)viewDidLoad {
    24     self.title = NSLocalizedString(@"Settings",@"");
    26     self.title = NSLocalizedString(@"Settings",@"");
    25 
    27 
    26     // allocate controllers and store them into the array
    28     // allocate controllers and store them into the array
    27     NSMutableArray *array= [[NSMutableArray alloc] init];
    29     NSArray *array= [[NSArray alloc] initWithObjects:NSLocalizedString(@"General",@""), 
    28 
    30                                                      NSLocalizedString(@"Teams",@""),
    29     GeneralSettingsViewController *generalSettingsViewController = [[GeneralSettingsViewController alloc]
    31                                                      NSLocalizedString(@"Weapons",@""),
    30                                                                     initWithStyle:UITableViewStyleGrouped];
    32                                                      NSLocalizedString(@"Schemes",@""),
    31     generalSettingsViewController.title = NSLocalizedString(@"General",@"");
    33                                                      nil];
    32     [array addObject:generalSettingsViewController];
    34     self.controllerNames = array;
    33     [generalSettingsViewController release];
       
    34     
       
    35     TeamSettingsViewController *teamSettingsViewController = [[TeamSettingsViewController alloc] 
       
    36                                                               initWithStyle:UITableViewStyleGrouped];
       
    37     teamSettingsViewController.title = NSLocalizedString(@"Teams",@"");
       
    38     [array addObject:teamSettingsViewController];
       
    39     [teamSettingsViewController release];
       
    40     
       
    41     self.controllers = array;
       
    42     [array release];
    35     [array release];
    43     
    36     
    44     // on ipad make the general setting the first view, on iphone add the "Done" button on top left
    37     // on ipad make the general setting the first view, on iphone add the "Done" button on top left
    45     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    38     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    46         UITableViewController *nextController = [self.controllers objectAtIndex:0];
    39         
    47         nextController.navigationItem.hidesBackButton = YES;
    40         // show some stuff
    48         [self.navigationController pushViewController:nextController animated:NO];
    41         
       
    42         //[self.navigationController pushViewController:nextController animated:NO];
    49     } else {
    43     } else {
    50         self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:0 target:self action:@selector(dismissSplitView)];
    44         self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
       
    45                                                                                               target:self
       
    46                                                                                               action:@selector(dismissSplitView)];
    51     }
    47     }
    52 
    48 
    53     [super viewDidLoad];
    49     [super viewDidLoad];
    54 }
    50 }
    55 
    51 
    56 - (void)didReceiveMemoryWarning {
       
    57     // Releases the view if it doesn't have a superview.
       
    58     [super didReceiveMemoryWarning];
       
    59     // Release any cached data, images, etc that aren't in use.
       
    60 }
       
    61 
       
    62 - (void)viewDidUnload {
       
    63     self.controllers = nil;
       
    64     self.popoverController = nil;
       
    65     [super viewDidUnload];
       
    66 }
       
    67 
       
    68 - (void)dealloc {
       
    69     [controllers release];
       
    70     [popoverController release];
       
    71     [super dealloc];
       
    72 }
       
    73 
    52 
    74 #pragma mark -
    53 #pragma mark -
    75 #pragma mark Table view data source
    54 #pragma mark Table view data source
    76 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
    55 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
    77     return 1;
    56     return 1;
    78 }
    57 }
    79 
    58 
    80 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    59 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    81     return [controllers count];
    60     return [controllerNames count];
    82 }
    61 }
    83 
    62 
    84 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    63 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    85     static NSString *CellIdentifier = @"Cell";
    64     static NSString *CellIdentifier = @"Cell";
    86     
    65     
    89         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
    68         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
    90                                        reuseIdentifier:CellIdentifier] autorelease];
    69                                        reuseIdentifier:CellIdentifier] autorelease];
    91     }
    70     }
    92     
    71     
    93     NSInteger row = [indexPath row];
    72     NSInteger row = [indexPath row];
    94     UITableViewController *controller = [controllers objectAtIndex:row];
       
    95     
    73     
    96     cell.textLabel.text = controller.title;
    74     cell.textLabel.text = [controllerNames objectAtIndex:row];
    97     cell.imageView.image = [UIImage imageNamed:@"Icon.png"];
    75     cell.imageView.image = [UIImage imageNamed:@"Icon.png"];
    98     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    76     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    99     
    77     
   100     return cell;
    78     return cell;
   101 }
    79 }
   102 
    80 
   103 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    81 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   104     NSInteger row = [indexPath row];
    82     NSInteger row = [indexPath row];
   105     UITableViewController *nextController = [self.controllers objectAtIndex:row];
    83     UIViewController *nextController;
       
    84     
       
    85     switch (row) {
       
    86         case 0:
       
    87             if (nil == generalSettingsViewController)
       
    88                 generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
       
    89             nextController = generalSettingsViewController;
       
    90             break;
       
    91         case 1:
       
    92             if (nil == teamSettingsViewController)
       
    93                 teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
       
    94             nextController = teamSettingsViewController;
       
    95             break;
       
    96         case 2:
       
    97             if (nil == weaponSettingsViewController)
       
    98                 weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
       
    99             nextController = weaponSettingsViewController;
       
   100             break;
       
   101         case 3:
       
   102             if (nil == schemeSettingsViewController)
       
   103                 schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
       
   104             nextController = schemeSettingsViewController;
       
   105             break;
       
   106     }
       
   107     
       
   108     nextController.title = [controllerNames objectAtIndex:row];
   106     [self.navigationController pushViewController:nextController animated:YES];
   109     [self.navigationController pushViewController:nextController animated:YES];
   107 }
   110 }
   108 
   111 
   109 /*
   112 /*
   110 #pragma mark -
   113 #pragma mark -
   145 
   148 
   146 -(IBAction) dismissSplitView {
   149 -(IBAction) dismissSplitView {
   147     [[NSNotificationCenter defaultCenter] postNotificationName:@"dismissModalView" object:nil];
   150     [[NSNotificationCenter defaultCenter] postNotificationName:@"dismissModalView" object:nil];
   148 }
   151 }
   149 
   152 
       
   153 
       
   154 -(void) didReceiveMemoryWarning {
       
   155     // Releases the view if it doesn't have a superview.
       
   156     [super didReceiveMemoryWarning];
       
   157     // Release any cached data, images, etc that aren't in use.
       
   158 }
       
   159 
       
   160 -(void) viewDidUnload {
       
   161     self.controllerNames = nil;
       
   162     self.popoverController = nil;
       
   163     generalSettingsViewController = nil;
       
   164     teamSettingsViewController = nil;
       
   165     weaponSettingsViewController = nil;
       
   166     schemeSettingsViewController = nil;
       
   167     [super viewDidUnload];
       
   168 }
       
   169 
       
   170 -(void) dealloc {
       
   171     [controllerNames release];
       
   172     [popoverController release];
       
   173     [generalSettingsViewController release];
       
   174     [teamSettingsViewController release];
       
   175     [weaponSettingsViewController release];
       
   176     [schemeSettingsViewController release];
       
   177     [super dealloc];
       
   178 }
   150 @end
   179 @end