右边Menu菜单

作者: HeavenWong | 来源:发表于2016-04-29 18:09 被阅读382次
    • 使用系统自带的方法实现,非第三方库,前提iOS8以后才能使用

    • 实现步骤:

    • 1.创建导航条的右边按钮

    - (void)viewDidLoad {
        [super viewDidLoad];
     // 右边
        self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(rightBarAction)];
    }
    
    #pragma mark -- 菜单
    // 菜单  点击按钮调用的方法
    - (void)rightBarAction {
        
        self.itemPopVC = [[WMPopoverController alloc] init];
        self.itemPopVC.modalPresentationStyle = UIModalPresentationPopover;
        self.itemPopVC.popoverPresentationController.barButtonItem = self.navigationItem.rightBarButtonItem;
        //箭头方向
        self.itemPopVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
        //代理
        self.itemPopVC.popoverPresentationController.delegate = self;
        [self presentViewController:self.itemPopVC animated:YES completion:nil];
    }
    - (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
        NSLog(@"%@",controller);
        return  UIModalPresentationNone;
    }
    
    
    • 2.创建类==就是菜单视图
    • .h文件
    #import <UIKit/UIKit.h>
    
    @interface WMPopoverController : UITableViewController
    
    @end
    
    • .m文件
    #import "WMPopoverController.h"
    
    @interface WMPopoverController ()
    
    @property (nonatomic, strong) NSMutableArray *addArray;
    
    @end
    
    @implementation WMPopoverController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.tableView.scrollEnabled = NO;
        self.addArray = [[NSMutableArray alloc] initWithObjects:@"扫一扫",@"搜一搜", @"创建讨论组",@"发送到电脑", @"面对面快传",@"收钱", nil];
        
        
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        return self.addArray.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        
        static NSString *identifer = @"cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifer];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifer];
        }
        cell.textLabel.text = [NSString stringWithFormat:@"%@", self.addArray[indexPath.row]];
        return cell;
    }
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        
        NSInteger number = indexPath.row;
        switch (number) {
            case 0:
                NSLog(@"扫一扫");
                break;
                
            case 1:
                NSLog(@"搜一搜");
                break;
                
            default:
                break;
        }
        
    }
    
    //重写preferredContentSize,返回popover的大小
    - (CGSize)preferredContentSize {
        if (self.presentingViewController && self.tableView != nil) {
            CGSize tempSize = self.presentingViewController.view.bounds.size;
            tempSize.width = 150;
            CGSize size = [self.tableView sizeThatFits:tempSize];  //sizeThatFits返回的是最合适的尺寸,但不会改变控件的大小
            return size;
        }else {
            return [super preferredContentSize];
        }
    }
    
    
    
    @end
    
    
    效果图

    相关文章

      网友评论

      本文标题:右边Menu菜单

      本文链接:https://www.haomeiwen.com/subject/ucxkrttx.html