一,效果图。
二,工程图。
三,代码
RootViewController.h
#import <UIKit/UIKit.h> @interface RootViewController : UIViewController { UIButton * leftButton; UIButton * rightButton; UIViewController * firstController; UIViewController * secondController; } @end
RootViewController.m
#import "RootViewController.h" @interface RootViewController () @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //初始化顶部按钮 [self creatHeadView]; //初始化背景图 [self initBackView]; } #pragma -mark -functions //初始化背景图 -(void)initBackView { firstController = [[UIViewController alloc] init]; firstController.view.backgroundColor = [UIColor redColor]; [self.view addSubview:firstController.view]; secondController = [[UIViewController alloc] init]; secondController.view.backgroundColor = [UIColor blueColor]; } //初始化顶部按钮 -(void)creatHeadView { UIView * headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 30)]; //左边的按钮 leftButton = [UIButton buttonWithType:UIButtonTypeCustom]; leftButton.frame = CGRectMake(0, 0, 50, 30); leftButton.tag = 201; leftButton.enabled = NO; [leftButton setImage:[UIImage imageNamed:@"left"] forState:UIControlStateNormal]; [leftButton addTarget:self action:@selector(doClickHeadActions:) forControlEvents:UIControlEventTouchUpInside]; [headView addSubview:leftButton]; //右边的按钮 rightButton = [UIButton buttonWithType:UIButtonTypeCustom]; rightButton.frame = CGRectMake(50, 0, 50, 30); rightButton.tag = 301; [rightButton setImage:[UIImage imageNamed:@"right"] forState:UIControlStateNormal]; [rightButton addTarget:self action:@selector(doClickHeadActions:) forControlEvents:UIControlEventTouchUpInside]; [headView addSubview:rightButton]; self.navigationItem.titleView = headView; } #pragma -mark -doClickActions -(void)doClickHeadActions:(UIButton *)btn { if (btn.tag == 201) { [secondController dismissViewControllerAnimated:NO completion:nil]; [self.view addSubview:firstController.view]; [btn setImage:[UIImage imageNamed:@"leftselect"] forState:UIControlStateNormal]; btn.enabled = NO; [rightButton setImage:[UIImage imageNamed:@"right"] forState:UIControlStateNormal]; rightButton.enabled = YES; } else if (btn.tag == 301) { [firstController dismissViewControllerAnimated:NO completion:nil]; [self.view addSubview:secondController.view]; [btn setImage:[UIImage imageNamed:@"rightselect"] forState:UIControlStateNormal]; btn.enabled = NO; [leftButton setImage:[UIImage imageNamed:@"left"] forState:UIControlStateNormal]; leftButton.enabled = YES; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }