root / asi-http-request-with-pithos / iPhone Sample / RootViewController.m @ be116d22
History | View | Annotate | Download (4.1 kB)
1 |
// |
---|---|
2 |
// RootViewController.m |
3 |
// Part of the ASIHTTPRequest sample project - see http://allseeing-i.com/ASIHTTPRequest for details |
4 |
// |
5 |
// Created by Ben Copsey on 16/06/2010. |
6 |
// Copyright 2010 All-Seeing Interactive. All rights reserved. |
7 |
// |
8 |
|
9 |
#import "RootViewController.h" |
10 |
#import "SynchronousViewController.h" |
11 |
#import "QueueViewController.h" |
12 |
#import "AuthenticationViewController.h" |
13 |
#import "UploadViewController.h" |
14 |
#import "WebPageViewController.h" |
15 |
|
16 |
@implementation RootViewController |
17 |
|
18 |
|
19 |
- (void)viewDidLoad |
20 |
{ |
21 |
[super viewDidLoad]; |
22 |
self.contentSizeForViewInPopover = CGSizeMake(310.0f, self.tableView.rowHeight*5.0f); |
23 |
} |
24 |
|
25 |
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { |
26 |
return YES; |
27 |
} |
28 |
|
29 |
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
30 |
{ |
31 |
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; |
32 |
if (!cell) { |
33 |
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"] autorelease]; |
34 |
} |
35 |
switch ([indexPath row]) { |
36 |
case 0: |
37 |
[[cell textLabel] setText:@"Synchronous"]; |
38 |
break; |
39 |
case 1: |
40 |
[[cell textLabel] setText:@"Queue"]; |
41 |
break; |
42 |
case 2: |
43 |
[[cell textLabel] setText:@"Authentication"]; |
44 |
break; |
45 |
case 3: |
46 |
[[cell textLabel] setText:@"Upload"]; |
47 |
break; |
48 |
case 4: |
49 |
[[cell textLabel] setText:@"Web Page Download"]; |
50 |
break; |
51 |
} |
52 |
return cell; |
53 |
} |
54 |
|
55 |
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section |
56 |
{ |
57 |
return 5; |
58 |
} |
59 |
|
60 |
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath |
61 |
{ |
62 |
UIViewController *viewController = nil; |
63 |
switch ([indexPath row]) { |
64 |
case 0: |
65 |
viewController = [[[SynchronousViewController alloc] initWithNibName:@"Sample" bundle:nil] autorelease]; |
66 |
break; |
67 |
case 1: |
68 |
viewController = [[[QueueViewController alloc] initWithNibName:@"Sample" bundle:nil] autorelease]; |
69 |
break; |
70 |
case 2: |
71 |
viewController = [[[AuthenticationViewController alloc] initWithNibName:@"Sample" bundle:nil] autorelease]; |
72 |
break; |
73 |
case 3: |
74 |
viewController = [[[UploadViewController alloc] initWithNibName:@"Sample" bundle:nil] autorelease]; |
75 |
break; |
76 |
case 4: |
77 |
viewController = [[[WebPageViewController alloc] initWithNibName:@"Sample" bundle:nil] autorelease]; |
78 |
break; |
79 |
} |
80 |
[splitViewController setViewControllers:[NSArray arrayWithObjects:[self navigationController],viewController,nil]]; |
81 |
|
82 |
// Dismiss the popover if it's present. |
83 |
if ([self popoverController]) { |
84 |
[[self popoverController] dismissPopoverAnimated:YES]; |
85 |
} |
86 |
|
87 |
// Configure the new view controller's popover button (after the view has been displayed and its toolbar/navigation bar has been created). |
88 |
if ([self rootPopoverButtonItem]) { |
89 |
[[[(id)viewController navigationBar] topItem] setLeftBarButtonItem:[self rootPopoverButtonItem] animated:NO]; |
90 |
} |
91 |
|
92 |
} |
93 |
|
94 |
- (void)splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc |
95 |
{ |
96 |
[barButtonItem setTitle:@"More Examples"]; |
97 |
[self setPopoverController:pc]; |
98 |
[self setRootPopoverButtonItem:barButtonItem]; |
99 |
SampleViewController *detailViewController = [[splitViewController viewControllers] objectAtIndex:1]; |
100 |
[detailViewController showNavigationButton:barButtonItem]; |
101 |
} |
102 |
|
103 |
- (void)splitViewController:(UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem |
104 |
{ |
105 |
[self setPopoverController:nil]; |
106 |
[self setRootPopoverButtonItem:nil]; |
107 |
SampleViewController *detailViewController = [[splitViewController viewControllers] objectAtIndex:1]; |
108 |
[detailViewController hideNavigationButton:barButtonItem]; |
109 |
} |
110 |
|
111 |
- (void)splitViewController:(UISplitViewController *)svc popoverController: (UIPopoverController *)pc willPresentViewController: (UIViewController *)aViewController |
112 |
{ |
113 |
if (pc != nil) { |
114 |
[pc dismissPopoverAnimated:YES]; |
115 |
} |
116 |
} |
117 |
|
118 |
|
119 |
@synthesize splitViewController; |
120 |
@synthesize popoverController; |
121 |
@synthesize rootPopoverButtonItem; |
122 |
@end |