2
3 #define COOKBOOK_PURPLE_COLOR [UIColor colorWithRed:0.20392f green:0.19607f blue:0.61176f alpha:1.0f]
4 #define BARBUTTON(TITLE, SELECTOR) [[[UIBarButtonItem alloc] initWithTitle:TITLE style:UIBarButtonItemStylePlain target:self action:SELECTOR] autorelease]
5
6 @interface TestBedViewController : UIViewController
7 @end
8
9 @implementation TestBedViewController
10
11 // Return an exhaustive descent of the view's subviews
12 NSArray * allSubviews(UIView * aView)
13 {
14 NSArray * results = [aView subviews];
15 for (UIView * eachView in [aView subviews])
16 {
17 NSArray * riz = allSubviews(eachView);
18 if (riz) results = [results arrayByAddingObjectsFromArray:riz];
19 }
20 return results;
21 }
22
23 - ( void ) segmentAction: (UISegmentedControl * ) sender
24 {
25 // Update the label with the segment number
26 UILabel * label = (UILabel * )[self.view viewWithTag: 101 ];
27 [label setText:[NSString stringWithFormat: @" %0d " , sender.selectedSegmentIndex + 1 ]];
28 }
29
30 - ( void ) loadView
31 {
32 self.view = [[[NSBundle mainBundle] loadNibNamed: @" mainview " owner:self options:nil] lastObject];
33 self.navigationController.navigationBar.tintColor = COOKBOOK_PURPLE_COLOR;
34
35 // Create the segmented control. Choose one of the three styles
36 NSArray * buttonNames = [NSArray arrayWithObjects: @" One " , @" Two " , @" Three " , @" Four " , @" Five " , @" Six " , nil];
37 UISegmentedControl * segmentedControl = [[UISegmentedControl alloc] initWithItems:buttonNames];
38 segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
39 [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
40
41 // For menus, the momentary behavior is preferred. Otherwise, the segmented control
42 // provides a radio-button style interface
43 #define TESTWITHMOMENTARY 1
44
45 #if TESTWITHMOMENTARY == 1
46 segmentedControl.momentary = YES;
47 #else
48 segmentedControl.momentary = NO;
49 segmentedControl.selectedSegmentIndex = 0 ;
50 #endif
51
52 CFShow(allSubviews(segmentedControl));
53
54
55 // Add it to the navigation bar
56 self.navigationItem.titleView = segmentedControl;
57 [segmentedControl release];
58 }
59 @end
60
61 @interface TestBedAppDelegate : NSObject < UIApplicationDelegate >
62 @end
63
64 @implementation TestBedAppDelegate
65 - ( void )applicationDidFinishLaunching:(UIApplication * )application {
66 UIWindow * window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
67 UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:[[TestBedViewController alloc] init]];
68 [window addSubview:nav.view];
69 [window makeKeyAndVisible];
70 }
71 @end
72
73 int main( int argc, char * argv[])
74 {
75 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
76 int retVal = UIApplicationMain(argc, argv, nil, @" TestBedAppDelegate " );
77 [pool release];
78 return retVal;
79 }
80