最终效果图:

各控件关系图1:
\
各控件关系图2:
点击Dock上面的按钮DockItem,
创建经导航控制器包装的DealListController,
并且添加到主控制器的右侧空间
//
// DealListController.m
// 帅哥_团购
//
// Created by beyond on 14-8-14.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// 点击dock上面的【团购】按钮对应的控制器,上面是导航栏,导航栏右边是searchBar,导航栏左边是一个大按钮(TopMenu)(内部由三个小按钮组成<TopMenuItem>)
#import "DealListController.h"
// 导航栏左边是一个大按钮(顶部菜单)
#import "TopMenu.h"
@interface DealListController ()
@end
@implementation DealListController
- (void)viewDidLoad
{
[super viewDidLoad];
// 1,设置上方的导航栏,右边是搜索bar,左边是一个大的VIEW(内有三个按钮),即TopMenu,内部的按钮是TopMenuItem
[self addNaviBarBtn];
}
// 1,设置上方的导航栏,右边是搜索bar,左边是一个大的VIEW(内有三个按钮),<span style="font-family: Arial, Helvetica, sans-serif;">即TopMenu,内部的按钮是TopMenuItem</span>
- (void)addNaviBarBtn
{
// 1.右边的搜索框
UISearchBar *s = [[UISearchBar alloc] init];
s.frame = CGRectMake(0, 0, 210, 35);
s.placeholder = @"请输入商品名、地址等";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:s];
// 2.左边的菜单栏,导航栏左边是一个大按钮(顶部菜单)
TopMenu *topMenu = [[TopMenu alloc] init];
// 3.用于点击顶部按钮时,容纳创建出来的底部弹出菜单(包括一个contentView和cover,contentView又包括scrollView和subTitleImgView),本成员是由创建此TopMenu的外部赋值传入, 这里是控制器的view,就是导航栏下面的所有区域
// 重要~~~~~~~~~~
topMenu.controllerView = self.view;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:topMenu];
}
@endTopMenu
// // TopMenu.h // 帅哥_团购 // // Created by beyond on 14-8-15. // Copyright (c) 2014年 com.beyond. All rights reserved. // 点击dock上面的【团购】按钮时,创建出对应的经导航包装后的子控制器,子控制器的上面是导航栏,导航栏右边是searchBar,导航栏左边是一个大按钮(TopMenu)(内部只由三个小按钮组成<TopMenuItem>它们分别是:全部频道,全部商区,默认排序),点击TopMenu中的某一个按钮<TopMenuItem>,会在其下方,弹出一个PopMenu,PopMenu包括二个部分(上面是一个contentView:包括:scrollView和subTitleImgView,下:蒙板) #import <UIKit/UIKit.h> @interface TopMenu : UIView // 用于点击顶部菜单项时,容纳创建出来的底部弹出菜单(包括一个contentView和cover,contentView又包括scrollView和subTitleImgView),本成员是由创建此TopMenu的控制器赋值传入, 本成员属性是用来接收控制器的view,就是导航栏下面的所有区域,目的是用于添加并展示PopMenu @property (nonatomic, weak) UIView *controllerView; @end
to be continue...
iOS_21团购_顶部菜单和弹出菜单联动,布布扣,bubuko.com
原文地址:http://blog.csdn.net/pre_eminent/article/details/38640411