5 // Created by Vittorio on 27/03/10. |
5 // Created by Vittorio on 27/03/10. |
6 // Copyright 2010 __MyCompanyName__. All rights reserved. |
6 // Copyright 2010 __MyCompanyName__. All rights reserved. |
7 // |
7 // |
8 |
8 |
9 #import "DetailViewController.h" |
9 #import "DetailViewController.h" |
10 |
10 #import "TeamSettingsViewController.h" |
11 |
11 |
12 @implementation DetailViewController |
12 @implementation DetailViewController |
13 @synthesize navigationBar, popoverController, detailItem, test, optionList,table; |
13 @synthesize popoverController, detailItem, controllers; |
14 |
|
15 /* |
|
16 // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. |
|
17 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { |
|
18 if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { |
|
19 // Custom initialization |
|
20 } |
|
21 return self; |
|
22 } |
|
23 */ |
|
24 |
14 |
25 |
15 |
26 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. |
16 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. |
27 - (void)viewDidLoad { |
17 - (void)viewDidLoad { |
|
18 self.title =@"First"; |
|
19 NSMutableArray *array= [[NSMutableArray alloc] init]; |
|
20 |
|
21 TeamSettingsViewController *teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStylePlain]; |
|
22 teamSettingsViewController.title =NSLocalizedString(@"Teams",@""); |
|
23 [array addObject:teamSettingsViewController]; |
|
24 [teamSettingsViewController release]; |
|
25 |
|
26 self.controllers = array; |
|
27 [array release]; |
|
28 |
28 [super viewDidLoad]; |
29 [super viewDidLoad]; |
29 optionList = [[NSArray alloc] initWithObjects:NSLocalizedString(@"General",@""), |
|
30 NSLocalizedString(@"Teams",@""), |
|
31 NSLocalizedString(@"Weapons",@""), |
|
32 NSLocalizedString(@"Schemes",@""), |
|
33 nil]; |
|
34 } |
30 } |
35 |
|
36 |
31 |
37 - (void)didReceiveMemoryWarning { |
32 - (void)didReceiveMemoryWarning { |
38 // Releases the view if it doesn't have a superview. |
33 // Releases the view if it doesn't have a superview. |
39 [super didReceiveMemoryWarning]; |
34 [super didReceiveMemoryWarning]; |
40 |
35 |
41 // Release any cached data, images, etc that aren't in use. |
36 // Release any cached data, images, etc that aren't in use. |
42 } |
37 } |
43 |
38 |
44 |
|
45 - (void)viewDidUnload { |
39 - (void)viewDidUnload { |
|
40 self.controllers = nil; |
|
41 self.popoverController = nil; |
|
42 self.detailItem = nil; |
46 [super viewDidUnload]; |
43 [super viewDidUnload]; |
47 // Release any retained subviews of the main view. |
|
48 // e.g. self.myOutlet = nil; |
|
49 } |
44 } |
50 |
45 |
51 |
|
52 - (void)dealloc { |
46 - (void)dealloc { |
53 [optionList release]; |
47 [controllers release]; |
54 [navigationBar release]; |
|
55 [popoverController release]; |
48 [popoverController release]; |
56 [detailItem release]; |
49 [detailItem release]; |
57 [super dealloc]; |
50 [super dealloc]; |
58 } |
51 } |
59 |
52 |
60 #pragma mark - |
53 #pragma mark - |
61 #pragma mark Table view data source |
54 #pragma mark Table view data source |
62 |
|
63 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { |
55 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { |
64 return 1; |
56 return 1; |
65 } |
57 } |
66 |
58 |
67 |
|
68 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { |
59 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { |
69 return [optionList count]; |
60 return [controllers count]; |
70 } |
61 } |
71 |
62 |
72 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
63 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
73 static NSString *CellIdentifier = @"Cell"; |
64 static NSString *CellIdentifier = @"Cell"; |
74 |
65 |
75 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; |
66 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; |
76 if (cell == nil) { |
67 if (cell == nil) { |
77 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; |
68 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault |
78 cell.textLabel.text = [optionList objectAtIndex:[indexPath row]]; |
69 reuseIdentifier:CellIdentifier] autorelease]; |
79 } |
70 } |
|
71 |
|
72 NSInteger row = [indexPath row]; |
|
73 UITableViewController *controller = [controllers objectAtIndex:row]; |
|
74 |
|
75 cell.textLabel.text = controller.title; |
|
76 cell.imageView.image = [UIImage imageNamed:@"Icon.png"]; |
|
77 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; |
80 |
78 |
81 return cell; |
79 return cell; |
82 } |
80 } |
83 |
81 |
|
82 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { |
|
83 NSInteger row = [indexPath row]; |
|
84 UITableViewController *nextController = [self.controllers objectAtIndex:row]; |
|
85 [self.navigationController pushViewController:nextController animated:YES]; |
|
86 } |
|
87 |
84 #pragma mark - |
88 #pragma mark - |
85 #pragma mark Managing the popover controller |
89 #pragma mark Managing the popover controller |
86 |
90 // When setting the detail item, update the view and dismiss the popover controller if it's showing. |
87 /* |
|
88 When setting the detail item, update the view and dismiss the popover controller if it's showing. |
|
89 */ |
|
90 -(void) setDetailItem:(id) newDetailItem { |
91 -(void) setDetailItem:(id) newDetailItem { |
91 if (detailItem != newDetailItem) { |
92 if (detailItem != newDetailItem) { |
92 [detailItem release]; |
93 [detailItem release]; |
93 detailItem = [newDetailItem retain]; |
94 detailItem = [newDetailItem retain]; |
94 |
95 |
95 // Update the view. |
96 // Update the view. |
96 navigationBar.topItem.title = (NSString*) detailItem; |
97 // navigationBar.topItem.title = (NSString*) detailItem; |
97 |
98 |
98 test.text=(NSString*) detailItem; |
99 //test.text=(NSString*) detailItem; |
99 } |
100 } |
100 |
101 |
101 if (popoverController != nil) { |
102 if (popoverController != nil) { |
102 [popoverController dismissPopoverAnimated:YES]; |
103 [popoverController dismissPopoverAnimated:YES]; |
103 } |
104 } |
104 } |
105 } |
105 |
106 |
106 |
|
107 #pragma mark - |
107 #pragma mark - |
108 #pragma mark Split view support |
108 #pragma mark Split view support |
109 |
|
110 -(void) splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc { |
109 -(void) splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc { |
111 barButtonItem.title = @"Master List"; |
110 barButtonItem.title = @"Master List"; |
112 [navigationBar.topItem setLeftBarButtonItem:barButtonItem animated:YES]; |
111 // [navigationBar.topItem setLeftBarButtonItem:barButtonItem animated:YES]; |
113 self.popoverController = pc; |
112 self.popoverController = pc; |
114 } |
113 } |
115 |
114 |
116 |
|
117 // Called when the view is shown again in the split view, invalidating the button and popover controller. |
115 // Called when the view is shown again in the split view, invalidating the button and popover controller. |
118 -(void) splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem { |
116 -(void) splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem { |
119 [navigationBar.topItem setLeftBarButtonItem:nil animated:YES]; |
117 // [navigationBar.topItem setLeftBarButtonItem:nil animated:YES]; |
120 self.popoverController = nil; |
118 self.popoverController = nil; |
121 } |
119 } |
122 |
120 |
123 #pragma mark - |
121 #pragma mark - |
124 #pragma mark Rotation support |
122 #pragma mark Rotation support |
125 |
|
126 // Ensure that the view controller supports rotation and that the split view can therefore show in both portrait and landscape. |
123 // Ensure that the view controller supports rotation and that the split view can therefore show in both portrait and landscape. |
127 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { |
124 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { |
128 return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); |
125 return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); |
129 } |
126 } |
130 |
127 |
131 -(IBAction) dismissSplitView { |
|
132 [[NSNotificationCenter defaultCenter] postNotificationName:@"dismissModalView" object:nil]; |
|
133 } |
|
134 |
|
135 @end |
128 @end |