project_files/HedgewarsMobile/Classes/SplitViewRootController.m
changeset 3697 d5b30d6373fc
parent 3662 a44406f4369b
child 3701 8c449776ebe6
equal deleted inserted replaced
3695:c11abf387a7d 3697:d5b30d6373fc
    18     return rotationManager(interfaceOrientation);
    18     return rotationManager(interfaceOrientation);
    19 }
    19 }
    20 
    20 
    21 -(void) didReceiveMemoryWarning {
    21 -(void) didReceiveMemoryWarning {
    22     // Releases the view if it doesn't have a superview.
    22     // Releases the view if it doesn't have a superview.
    23     [super didReceiveMemoryWarning];    
    23     [super didReceiveMemoryWarning];
    24     // Release any cached data, images, etc that aren't in use.
    24     // Release any cached data, images, etc that aren't in use.
    25     if (detailViewController.view.superview == nil)
    25     if (detailViewController.view.superview == nil)
    26         detailViewController = nil;
    26         detailViewController = nil;
    27     MSG_MEMCLEAN();
    27     MSG_MEMCLEAN();
    28 }
    28 }
    29 
    29 
    30 // load the view programmatically; we need a splitViewController that handles a MasterViewController 
    30 // load the view programmatically; we need a splitViewController that handles a MasterViewController
    31 // (which is just a UITableViewController) and a DetailViewController where we present options
    31 // (which is just a UITableViewController) and a DetailViewController where we present options
    32 -(void) viewDidLoad {
    32 -(void) viewDidLoad {
    33     detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    33     detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    34     UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
    34     UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
    35     [detailViewController release];
    35     [detailViewController release];
    36 
    36 
    37     CGRect rect = [[UIScreen mainScreen] bounds];
    37     CGRect rect = [[UIScreen mainScreen] bounds];
    38     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    38     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    39         self.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
    39         self.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
    40         
    40 
    41         UISplitViewController *splitViewRootController = [[UISplitViewController alloc] init];
    41         UISplitViewController *splitViewRootController = [[UISplitViewController alloc] init];
    42         splitViewRootController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
    42         splitViewRootController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width);
    43         
    43 
    44         MasterViewController *masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
    44         MasterViewController *masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
    45         UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    45         UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    46         [masterViewController release];
    46         [masterViewController release];
    47 
    47 
    48         splitViewRootController.delegate = detailViewController;
    48         splitViewRootController.delegate = detailViewController;
    49         masterViewController.detailViewController = detailViewController;        
    49         masterViewController.detailViewController = detailViewController;
    50         splitViewRootController.viewControllers = [NSArray arrayWithObjects: mainNavController, detailedNavController, nil];
    50         splitViewRootController.viewControllers = [NSArray arrayWithObjects: mainNavController, detailedNavController, nil];
    51         [mainNavController release];
    51         [mainNavController release];
    52         [detailedNavController release];
    52         [detailedNavController release];
    53         
    53 
    54         // add view to main controller
    54         // add view to main controller
    55         [self.view addSubview:splitViewRootController.view];
    55         [self.view addSubview:splitViewRootController.view];
    56     } else {
    56     } else {
    57         [self.view addSubview:detailedNavController.view];
    57         [self.view addSubview:detailedNavController.view];
    58     }
    58     }
    59 
    59 
    60     [super viewDidLoad];
    60     [super viewDidLoad];
    61 }
    61 }
    62          
    62 
    63 -(void) viewDidUnload {
    63 -(void) viewDidUnload {
    64     detailViewController = nil;
    64     detailViewController = nil;
    65     MSG_DIDUNLOAD();
    65     MSG_DIDUNLOAD();
    66     [super viewDidUnload];
    66     [super viewDidUnload];
    67 }
    67 }