1.首先定义一个UIBarButtonItem点击出现一个UIPopoverController
UIBarButtonItem *rightbar = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(rightClickAction:)];
self.navigationItem.rightBarButtonItem = rightbar;
2.点击方法,顺便新建ViewController,是UIpopoverController内容
- (void)rightClickAction:(UIBarButtonItem *)btn{
if (_popoverItem == nil) {
ViewController *oneVC = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:oneVC];
self.popoverItem = [[UIPopoverController alloc] initWithContentViewController:nav];
self.popoverItem.popoverContentSize = CGSizeMake(200, 300);
}
[self.popoverItem presentPopoverFromBarButtonItem:btn permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
如图:
我把每个文件粘上去
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
MangoViewController *mangoVC = [[MangoViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mangoVC];
self.window.rootViewController = nav;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
#import "MangoViewController.h"
#import "ViewController.h"
@interface MangoViewController ()<ChangeColorDelegate>
@property(nonatomic, strong) UIPopoverController *popoverItem;
@end
@implementation MangoViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor orangeColor];
self.title = @"UIPopoverController";
UIBarButtonItem *rightbar = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(rightClickAction:)];
self.navigationItem.rightBarButtonItem = rightbar;
}
- (void)rightClickAction:(UIBarButtonItem *)btn{
if (_popoverItem == nil) {
ViewController *oneVC = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:oneVC];
self.popoverItem = [[UIPopoverController alloc] initWithContentViewController:nav];
self.popoverItem.popoverContentSize = CGSizeMake(200, 300);
}
[self.popoverItem presentPopoverFromBarButtonItem:btn permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"oneVC";
self.view.backgroundColor = [UIColor redColor];
UIBarButtonItem *leftBar = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(clickAction)];
self.navigationItem.leftBarButtonItem = leftBar;
}