- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor grayColor]; UIImage *image = [[UIImage alloc]init]; image = [UIImage imageNamed:@"navigationItem_menu"]; UIButton *rightBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 15, 15)]; [rightBtn setImage:image forState:UIControlStateNormal]; [rightBtn addTarget:self action:@selector(PopView:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *settingBtnItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn]; self.navigationItem.rightBarButtonItem = settingBtnItem; } -(void)PopView:(UIButton *)sender{ PopoverView *popoverView = [PopoverView popoverView]; popoverView.showShade = YES; // 显示阴影背景 [popoverView showToView:sender withActions:[self QQActions]]; } - (NSArray<PopoverAction *> *)QQActions { // 发起多人聊天 action PopoverAction *multichatAction = [PopoverAction actionWithImage:[UIImage imageNamed:@"right_menu_multichat"] title:@"发起多人聊天" handler:^(PopoverAction *action) { #pragma mark - 该Block不会致使内存泄露, Block内代码无需刻意去设置弱引用. QQTalkViewController *view = [[QQTalkViewController alloc]init]; [self.navigationController pushViewController:view animated:YES]; }]; // 加好友 action PopoverAction *addFriAction = [PopoverAction actionWithImage:[UIImage imageNamed:@"right_menu_addFri"] title:@"加好友" handler:^(PopoverAction *action) { AddFriendViewController *view = [[AddFriendViewController alloc]init]; [self presentViewController:view animated:YES completion:^{ }]; }]; // 扫一扫 action PopoverAction *QRAction = [PopoverAction actionWithImage:[UIImage imageNamed:@"right_menu_QR"] title:@"扫一扫" handler:^(PopoverAction *action) { // do something! }]; // 面对面快传 action PopoverAction *facetofaceAction = [PopoverAction actionWithImage:[UIImage imageNamed:@"right_menu_facetoface"] title:@"面对面快传" handler:^(PopoverAction *action) { // do something! }]; // 付款 action PopoverAction *payMoneyAction = [PopoverAction actionWithImage:[UIImage imageNamed:@"right_menu_payMoney"] title:@"付款" handler:^(PopoverAction *action) { // do something! }]; return @[multichatAction, addFriAction, QRAction, facetofaceAction, payMoneyAction]; }
git地址:https://github.com/lifution/Popovergit