Men的博客

欢迎光临!

0%

UINavigationController

如何是用导航控制器显示第一个界面

创建导航控制器,把试图控制器放入导航控制器进行管理
UINavigationController *nc=[[UINavigationController alloc]initWithRootViewController:fvc];
试图控制器设置为导航控制器的根试图控制器
self.window.rootViewController=nc;

切换到下一个界面

先创建下一个界面
使用pushViewController切换过去
[self.navigationController pushViewController:svc animated:YES];
3.返回上一个界面
使用 popToViewController 返回过去
[self.navigationController popToViewController:svc Animated:YES];
4.从任意界面,返回根试图控制器
使用popToRootViewControllerAnimated
[self.navigationController popToRootViewControllerAnimated:YES];
5.从当前界面返回以前push的任意界面
使用popToViewController:array[1]
将每个试图放入数组中
NSArray *array=self.navigationController.viewControllers;
[self.navigationController popToViewController:array[1] animated:YES];

设置导航控制器的标题

fvc.title=@”第一界面”;

在导航栏上添加一个按钮(不是添加UIButton)

创建文本按钮initWithTitle
UIBarButtonItem *leftItem=[[UIBarButtonItem alloc]initWithTitle:@”分类” style:UIBarButtonItemStylePlain target:self action:@selector(changeCategory:)];
创建系统样式按钮initWithBarButtonSystemItem
UIBarButtonItem *leftItem=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(changeCategory:)];
创建自定义图片按钮initWithCustomView
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
button.frame=CGRectMake(0, 0, 35, 30);
[button setBackgroundImage:[UIImage imageNamed:@”main_left_nav”] forState:UIControlStateNormal];
UIBarButtonItem *leftItem=[[UIBarButtonItem alloc]initWithCustomView:button];
self.navigationItem.leftBarButtonItem=leftItem;

设置界面左上角返回按钮。

UIBarButtonItem *backItem=[[UIBarButtonItem alloc]initWithTitle:@”返回” style:UIBarButtonItemStylePlain target:self action:nil];
self.navigationItem.backBarButtonItem=backItem;

设置导航栏的背景

设置导航条的色调barTintColor
self.navigationController.navigationBar.barTintColor=[UIColor grayColor];

设置导航条的背景图片setBackgroundImage

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@”header_bg”] forBarMetrics:UIBarMetricsDefault];
UIBarMetricsDefault,
UIBarMetricsLandscapePhone,
UIBarMetricsDefaultPrompt = 101,
注意:导航条的大小:默认高度44个点。
导航条的图片高度要么是44,只会覆盖导航条
要么是64,不仅覆盖导航条,还会覆盖状态栏

隐藏导航栏

self.navigationController.navigationBar.hidden=YES;

工具栏的使用

添加工具栏(不是添加,是显示)
[self.navigationController setToolbarHidden:NO];
self.navigationController.toolbarHidden=NO;
工具栏上添加的控件只能是UIBarButtonItem
UIBarButtonItem *item=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(dealTooBarClick:)];
UIBarButtonItem *item1=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(dealTooBarClick:)];
UIBarButtonItem *item2=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(dealTooBarClick:)];
self.toolbarItems=@[item,item1,item2];
为了分割三个Item,创建特殊item
相当于弹簧,弹开每个控件。UIBarButtonSystemItemFlexibleSpace
UIBarButtonItem *spse=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
可以自己设置宽度的间隔。UIBarButtonSystemItemFixedSpace
UIBarButtonItem *flex=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
flex.width=50;
self.toolbarItems=@[item,flex,item1,flex,item2];

注意:自动布局。self.view就是导航条以下的范围 。
self.automaticallyAdjustsScrollViewInsets=YES;
导航控制器:UINavigationController
导航条:navigationBar
导航条上的按钮控件:UIBarButtonItem
工具栏:Toolbar
注意:工具栏上的控件只能使用UIBarButtonItem设置