cocoaTouch/iPad/SplitViewRootController.m
changeset 3250 d5cd1a617123
parent 3113 2829ea0dd47c
child 3270 9bd8fb1707b9
equal deleted inserted replaced
3249:74a506c9d71b 3250:d5cd1a617123
    27 // 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 
    28 // (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
    29 -(void) viewDidLoad {
    29 -(void) viewDidLoad {
    30     // init every possible controller
    30     // init every possible controller
    31     splitViewController = [[UISplitViewController alloc] init];
    31     splitViewController = [[UISplitViewController alloc] init];
    32     detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
       
    33     masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
    32     masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain];
    34     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    33     detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    35 
    34     
       
    35     UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
       
    36     UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
       
    37     
    36     // set attributes
    38     // set attributes
    37     masterViewController.detailViewController = detailViewController;
    39     masterViewController.detailViewController = detailViewController;
    38     splitViewController.viewControllers = [NSArray arrayWithObjects:navigationController, detailViewController, nil];
    40     splitViewController.viewControllers = [NSArray arrayWithObjects: mainNavController, detailedNavController, nil];
    39 	splitViewController.delegate = detailViewController;
    41     [mainNavController release];
       
    42     [detailedNavController release];
       
    43 	
       
    44     splitViewController.delegate = detailViewController;
    40     
    45     
    41     // add view to main controller
    46     // add view to main controller
    42     [self.view addSubview:splitViewController.view];
    47     [self.view addSubview:splitViewController.view];
    43      
    48     [detailViewController release];
       
    49     [masterViewController release];
       
    50 
    44     [super viewDidLoad];
    51     [super viewDidLoad];
    45 }
    52 }
    46 
    53 
    47 -(void) dealloc {
    54 -(void) dealloc {
    48     [detailViewController release];
    55     [detailViewController release];
    49     [masterViewController release];
    56     [masterViewController release];
    50     [splitViewController release];
    57     [splitViewController release];
    51     [super dealloc];
    58     [super dealloc];
    52 }
    59 }
    53 
    60 
       
    61 #pragma mark -
       
    62 #pragma mark additional methods as we're using a UINavigationController programmatically
       
    63 // see http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/
       
    64 -(void) viewWillAppear:(BOOL)animated {
       
    65     [super viewWillAppear:animated];
       
    66     [detailViewController.navigationController viewWillAppear:animated];
       
    67 }
       
    68 
       
    69 -(void) viewWillDisappear:(BOOL)animated {
       
    70     [super viewWillDisappear:animated];
       
    71     [detailViewController.navigationController viewWillDisappear:animated];
       
    72 }
       
    73 
       
    74 -(void) viewDidAppear:(BOOL)animated {
       
    75     [super viewDidLoad];
       
    76     [detailViewController.navigationController viewDidAppear:animated];
       
    77 }
       
    78 
       
    79 -(void) viewDidDisappear:(BOOL)animated {
       
    80     [super viewDidUnload];
       
    81     [detailViewController.navigationController viewDidDisappear:animated];
       
    82 }
       
    83 
    54 
    84 
    55 @end
    85 @end