iOS导航栏使用

xcode:6.3.2

ios8.3

介绍:在平时项目开发中,UINavigationController的使用非常广泛,很多优秀的APP都采用了导航栏,导航栏对于视图控制方面非常便捷。

先来看一张官方的图

1,新建项目Nav

2,添加FirstViewController用于根视图,添加SecondViewController用于根视图跳转到的视图

3,在AppDelegate.m文件中,修改代理,使得FirstViewController为根视图,如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    FirstViewController *first = [[FirstViewController alloc] init];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:first];
    [self.window setRootViewController:nav];
    [self.window makeKeyAndVisible];
    return YES;
}

4,在FirstViewController.m中设置navigationController的相关属性,如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    self.title = @"首页"; //设置标题
    
    [self.navigationController.navigationBar setBarTintColor:[UIColor purpleColor]];//设置navigationbar的颜色
    
    [self.navigationController.navigationBar setTranslucent:YES];//设置navigationbar的半透明
    
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(cameraStart)];//设置navigationbar左边按钮
    
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(toSecond)];//设置navigationbar右边按钮
 
    
}

样式如图所示:

5,实现toSecond方法push到SecondViewController

- (void)toSecond {
    SecondViewController *second = [[SecondViewController alloc] init];
    [self.navigationController pushViewController:second animated:YES];
}

6,在SecondViewController.m中添加按钮,用于pop回FirstViewController,代码如下

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blueColor];
    
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 40)];
    [button setTitle:@"返回" forState:UIControlStateNormal];
    button.backgroundColor = [UIColor blackColor];
    [button addTarget:self action:@selector(backToFirstViewController) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    
   // [self.navigationController.navigationBar setHidden:YES];
}
- (void)backToFirstViewController {
    [self.navigationController popViewControllerAnimated:YES];
   // [self.navigationController.navigationBar setHidden:NO];

}

样式如下:

7,隐藏navigationBar,打开注释,设置navigationBar隐藏,同时在返回FirstViewController的方法中让navigationBar显示回来

[self.navigationController.navigationBar setHidden:YES];

源码地址:https://github.com/rokistar/UsingUINavigationController

posted on 2015-06-08 15:51  Roki  阅读(250)  评论(0编辑  收藏  举报

导航