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 detailViewController = nil; |
25 if (detailViewController.view.superview == nil) |
|
26 detailViewController = nil; |
26 MSG_MEMCLEAN(); |
27 MSG_MEMCLEAN(); |
27 } |
28 } |
28 |
29 |
29 // 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 |
30 // (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 |
31 -(void) viewDidLoad { |
32 -(void) viewDidLoad { |
32 detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
33 detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
33 UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; |
34 UINavigationController *detailedNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; |
34 [detailViewController release]; |
35 [detailViewController release]; |
35 |
36 |
|
37 CGRect rect = [[UIScreen mainScreen] bounds]; |
36 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) |
38 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) |
37 self.view.frame = CGRectMake(0, 0, 1024, 768); |
39 self.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width); |
38 |
40 |
39 //id splitViewRootController; |
|
40 |
|
41 Class splitViewControllerClass = NSClassFromString(@"UISplitViewController"); |
41 Class splitViewControllerClass = NSClassFromString(@"UISplitViewController"); |
42 if (splitViewControllerClass) { |
42 if (splitViewControllerClass) { |
43 #ifdef __IPHONE_3_2 |
43 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2 |
44 UISplitViewController *splitViewRootController = [[UISplitViewController alloc] init]; |
44 UISplitViewController *splitViewRootController = [[UISplitViewController alloc] init]; |
45 //[[splitViewRootController view] setAutoresizingMask: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth]; |
45 //splitViewRootController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; |
|
46 splitViewRootController.view.frame = CGRectMake(0, 0, rect.size.height, rect.size.width); |
46 |
47 |
47 splitViewRootController.view.frame = CGRectMake(0, 0, 1024, 768); |
|
48 MasterViewController *masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain]; |
48 MasterViewController *masterViewController = [[MasterViewController alloc] initWithStyle:UITableViewStylePlain]; |
49 |
|
50 UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; |
49 UINavigationController *mainNavController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; |
51 |
|
52 masterViewController.detailViewController = detailViewController; |
|
53 [masterViewController release]; |
50 [masterViewController release]; |
54 |
51 |
|
52 splitViewRootController.delegate = detailViewController; |
|
53 masterViewController.detailViewController = detailViewController; |
55 splitViewRootController.viewControllers = [NSArray arrayWithObjects: mainNavController, detailedNavController, nil]; |
54 splitViewRootController.viewControllers = [NSArray arrayWithObjects: mainNavController, detailedNavController, nil]; |
56 [mainNavController release]; |
55 [mainNavController release]; |
57 [detailedNavController release]; |
56 [detailedNavController release]; |
58 |
57 |
59 splitViewRootController.delegate = detailViewController; |
|
60 [detailViewController release]; |
|
61 |
|
62 // add view to main controller |
58 // add view to main controller |
63 [self.view addSubview:[splitViewRootController view]]; |
59 [self.view addSubview:splitViewRootController.view]; |
64 #endif |
60 #endif |
65 } else { |
61 } else { |
66 [self.view addSubview:detailedNavController.view]; |
62 [self.view addSubview:detailedNavController.view]; |
67 } |
63 } |
68 |
64 |