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 } |