UINavigationBar 导航条
导航条通常是位于屏幕的最顶端 UINavigationBar继承了UIView控件,通常是作为多个UINavigationItem的容器。他是以Stack(堆栈)的形式来管理多个UINavigationItem的,
也就是说每次只能看到一个NavItem对象。
用法:
1 创建UINavigationBar对象
2 创建UINavigationItem对象
3 创建NavItem里面的按钮对象 也就是UIBarButtonItem a 系统自带图标 b 自定义图片 c 自定义文字
4 将按钮添加到NavItem里面,然后将这个UINavigationItem压入UINavitationBar栈中( pushNavigationItem: animated:)。
关系图:
代码:
AppDelegate.h
#import "ViewController.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window=[[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]];
self.window.backgroundColor=[UIColorwhiteColor];
ViewController *viewController=[[ViewControlleralloc] init];
self.window.rootViewController=viewController;
[self.windowmakeKeyAndVisible];
returnYES;
}
ViewController.h
#import "ViewController.h"
@interfaceViewController ()
@end
@implementation ViewController
{
UINavigationBar * _navigationBar;
}
- (void)viewDidLoad
{
[superviewDidLoad];
self.view.backgroundColor=[UIColorwhiteColor];
//导航条通常位于屏幕顶端的控件,它继承了UIView,通常是多个UINavigationItem的容器。
// 1 创建一个导航条 UINavigationBar
_navigationBar=[[UINavigationBaralloc] initWithFrame:CGRectMake(0,0, self.view.bounds.size.width,60)];
[self.viewaddSubview:_navigationBar];
// 2 创建一个导航项 UINavigationItem
UINavigationItem * navItem = [[UINavigationItemalloc] initWithTitle:@"One导航项"];
//创建UIBarButton可根据需要选择适合自己的样式
//创建左边按钮采用系统默认的图标
UIBarButtonItem *leftBtn=[[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAddtarget:selfaction:nil];
//创建右边按钮采用文字的形式
UIBarButtonItem *rightBtn=[[UIBarButtonItemalloc] initWithTitle:@"设置"style:UIBarButtonItemStylePlain target:self action:nil];
//创建第三个按钮图片的格式
UIBarButtonItem *otherBtn=[[UIBarButtonItemalloc] initWithImage:[UIImageimageNamed:@"icon.png"]style:UIBarButtonItemStylePlain target:self action:nil];
//将按钮添加到navItem里面。
[navItem setLeftBarButtonItem:leftBtn];
[navItem setRightBarButtonItem:rightBtn];
// 3 将一个UINavigationItem压入UINavitationBar栈中。
[_navigationBarpushNavigationItem:navItem animated:YES];
}
@end
最后效果如图所示: