cocoaTouch/SplitViewRootController.m
changeset 3374 0d522416d97f
parent 3365 37ac593e9027
child 3405 8fdb08497bf1
equal deleted inserted replaced
3373:c1ff724a5c34 3374:0d522416d97f
    10 #import "MasterViewController.h"
    10 #import "MasterViewController.h"
    11 #import "DetailViewController.h"
    11 #import "DetailViewController.h"
    12 #import "CommodityFunctions.h"
    12 #import "CommodityFunctions.h"
    13 
    13 
    14 @implementation SplitViewRootController
    14 @implementation SplitViewRootController
    15 @synthesize detailViewController;
       
    16 
    15 
    17 
    16 
    18 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    17 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    19     return rotationManager(interfaceOrientation);
    18     return rotationManager(interfaceOrientation);
    20 }
    19 }
    26 }
    25 }
    27 
    26 
    28 // load the view programmatically; we need a splitViewController that handles a MasterViewController 
    27 // load the view programmatically; we need a splitViewController that handles a MasterViewController 
    29 // (which is just a UITableViewController) and a DetailViewController where we present options
    28 // (which is just a UITableViewController) and a DetailViewController where we present options
    30 -(void) viewDidLoad {
    29 -(void) viewDidLoad {
    31     self.detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    30     detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    32     [detailViewController release];
    31     UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
    33     UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:self.detailViewController];
       
    34     [detailViewController release];
    32     [detailViewController release];
    35 
    33 
       
    34     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
       
    35         self.view.frame = CGRectMake(0, 0, 1024, 768);
       
    36     
    36     id splitViewRootController;
    37     id splitViewRootController;
    37     
    38     
    38     Class splitViewControllerClass = NSClassFromString(@"UISplitViewController");
    39     Class splitViewControllerClass = NSClassFromString(@"UISplitViewController");
    39     if (splitViewControllerClass) {
    40     if (splitViewControllerClass) {
    40         splitViewRootController = [[splitViewControllerClass alloc] init];
    41         splitViewRootController = [[splitViewControllerClass alloc] init];
    41         //[[splitViewRootController view] setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
    42         //[[splitViewRootController view] setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
    42 
    43         
    43         [[splitViewRootController view] setFrame:CGRectMake(0, 0, 1024, 1024)]; // yeah it's funny
    44         [[splitViewRootController view] setFrame:CGRectMake(0, 0, 1024, 768)];
    44         MasterViewController *masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
    45         MasterViewController *masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
    45         
    46         
    46         UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    47         UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    47     
    48     
    48         masterViewController.detailViewController = self.detailViewController;
    49         masterViewController.detailViewController = detailViewController;
    49 
    50 
    50         [masterViewController release];
    51         [masterViewController release];
    51 
    52 
    52         [splitViewRootController setViewControllers:[NSArray arrayWithObjects: mainNavController, detailedNavController, nil]];
    53         [splitViewRootController setViewControllers:[NSArray arrayWithObjects: mainNavController, detailedNavController, nil]];
    53         [mainNavController release];
    54         [mainNavController release];
    54         [detailedNavController release];
    55         [detailedNavController release];
    55         
    56         
    56         [splitViewRootController setDelegate:self.detailViewController];
    57         [splitViewRootController setDelegate:detailViewController];
    57         [detailViewController release];
    58         [detailViewController release];
    58 
    59 
    59         // add view to main controller
    60         // add view to main controller
    60         [self.view addSubview:[splitViewRootController view]];
    61         [self.view addSubview:[splitViewRootController view]];
    61         //[splitViewRootController release];
       
    62 
       
    63     } else {
    62     } else {
    64         [self.view addSubview:detailedNavController.view];
    63         [self.view addSubview:detailedNavController.view];
    65     }
    64     }
    66 
    65 
    67     [super viewDidLoad];
    66     [super viewDidLoad];
    68 }
    67 }
    69          
    68          
    70 -(void) viewDidUnload {
    69 -(void) viewDidUnload {
       
    70     detailViewController = nil;
    71     [super viewDidUnload];
    71     [super viewDidUnload];
    72     self.detailViewController = nil;
       
    73 }
    72 }
       
    73 
    74 -(void) dealloc {
    74 -(void) dealloc {
    75     [detailViewController release];
    75     [detailViewController release];
    76     [super dealloc];
    76     [super dealloc];
    77 }
    77 }
    78 
    78