####iOS7 Programming Cookbook 第一章学习笔记 UIPopoverController
#####Displaying Popovers with UIPopoverController
#####ViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
@interface () <UIAlertViewDelegate >//private delegate @property (nonatomic , strong ) UIPopoverController *myPopoverController;@property (nonatomic , strong ) UIBarButtonItem *barButtonAdd;@end @implementation - (NSString *) photoButtonTitle{ return @"Photo" ; } - (NSString *) audioButtonTitle{ return @"Audio" ; } - (void )alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger )buttonIndex{ NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex]; if ([buttonTitle isEqualToString:[self photoButtonTitle]]){ NSLog (@"Photo" ); } else if ([buttonTitle isEqualToString:[self audioButtonTitle]]){ NSLog (@"Audio" ); } } - (void ) performAddWithAlertView:(id )paramSender{ [[[UIAlertView alloc] initWithTitle:nil message:@"Add..." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles: [self photoButtonTitle], [self audioButtonTitle], nil ] show]; } - (void ) performAddWithPopover:(id )paramSender{ [self .myPopoverController presentPopoverFromBarButtonItem:self .barButtonAdd permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES ]; } - (void )viewDidLoad{ [super viewDidLoad]; Class popoverClass = NSClassFromString (@"UIPopoverController" ); if (popoverClass != nil && UI_USER_INTERFACE_IDIOM () == UIUserInterfaceIdiomPad ){ PopoverContentViewController *content = [[PopoverContentViewController alloc] initWithNibName:nil bundle:nil ]; self .myPopoverController = [[UIPopoverController alloc] initWithContentViewController:content]; content.myPopoverController = self .myPopoverController; self .barButtonAdd = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector (performAddWithPopover:)]; } else { self .barButtonAdd = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector (performAddWithAlertView:)]; } [self .navigationItem setRightBarButtonItem:self .barButtonAdd animated:NO ]; } @end
#####PopoverContentViewController.h
1
@property (nonatomic , weak ) UIPopoverController *myPopoverController;
#####PopoverContentViewController.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
@interface PopoverContentViewController ()@property (nonatomic , strong ) UIButton *buttonPhoto;@property (nonatomic , strong ) UIButton *buttonAudio;@end @implementation PopoverContentViewController - (BOOL ) isInPopover{ Class popoverClass = NSClassFromString (@"UIPopoverController" ); if (popoverClass != nil && UI_USER_INTERFACE_IDIOM () == UIUserInterfaceIdiomPad && self .myPopoverController != nil ){ return YES ; } else { return NO ; } } - (void ) gotoAppleWebsite:(id )paramSender{ if ([self isInPopover]){ [self .myPopoverController dismissPopoverAnimated:YES ]; } else { } } - (void ) gotoAppleStoreWebsite:(id )paramSender{ if ([self isInPopover]){ [self .myPopoverController dismissPopoverAnimated:YES ]; } else { } } - (void )viewDidLoad{ [super viewDidLoad]; self .preferredContentSize = CGSizeMake (200.0 f, 125.0 f); CGRect buttonRect = CGRectMake (20.0 f,20.0 f, 160.0 f,37.0 f); self .buttonPhoto = [UIButton buttonWithType:UIButtonTypeSystem ]; [self .buttonPhoto setTitle:@"Photo" forState:UIControlStateNormal ]; [self .buttonPhoto addTarget:self action:@selector (gotoAppleWebsite:) forControlEvents:UIControlEventTouchUpInside ]; self .buttonPhoto.frame = buttonRect; [self .view addSubview:self .buttonPhoto]; buttonRect.origin.y += 50.0 f; self .buttonAudio = [UIButton buttonWithType:UIButtonTypeSystem ]; [self .buttonAudio setTitle:@"Audio" forState:UIControlStateNormal ]; [self .buttonAudio addTarget:self action:@selector (gotoAppleStoreWebsite:) forControlEvents:UIControlEventTouchUpInside ]; self .buttonAudio.frame = buttonRect; [self .view addSubview:self .buttonAudio]; } @end
Reference
近期评论