cocoaTouch/iPad/DetailViewController.m
changeset 3250 d5cd1a617123
parent 3165 3ec07a7d8456
child 3251 221c163ad5d9
equal deleted inserted replaced
3249:74a506c9d71b 3250:d5cd1a617123
     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