美文网首页
导航控制器

导航控制器

作者: PlatonsDream | 来源:发表于2016-07-08 22:46 被阅读26次

在Appledelegate.m中将导航控制器设置为根视图控制器,这样APP运行就直接进入导航控制器

    //导航控制器作为根视图控制器
    //导航控制器  管理有层次递进关系的视图控制器
    RootViewController *rootVC = [[RootViewController alloc] init];
    //rootVC作为导航控制器的根视图控制器
    UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:rootVC];
    //导航控制器作为window的根视图控制器
    self.window.rootViewController = navi;

导航栏的定制

//1.对导航栏自身属性的设置,因为导航栏是唯一的,所以对导航栏自身的设置会影响到每一个页面
    {
        //导航栏的半透明效果,会影响self.view子视图的坐标系
        //半透明效果打开,子视图的坐标原点是屏幕的左上角
        //半透明效果关闭,子视图的坐标原点是导航栏的左下角
        //导航栏高度44, 状态栏高度20 ,导航栏的半透明效果会延伸到状态栏,所以半透明效果的高度是64
        self.navigationController.navigationBar.translucent = YES;
        
//        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 64, 100, 50)];
//        view.backgroundColor = [UIColor redColor];
//        
//        [self.view addSubview:view];
        
        //导航栏的背景颜色
//        self.navigationController.navigationBar.barTintColor = [UIColor purpleColor];
        //背景图片
//        [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"2233"] forBarMetrics:UIBarMetricsDefault];
        //导航栏隐藏掉.半透明属性关掉时,子视图的坐标系原点是屏幕的左上角
//        self.navigationController.navigationBar.hidden = YES;
        
//        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
//        view.backgroundColor = [UIColor whiteColor];
//        [self.view addSubview:view];
        
    }
    //2.对self.navigationItem的设置,只影响当前页面
//    self.navigationItem
    {
        //导航栏标题
//        self.title = @"第一页";
        self.navigationItem.title = @"设置";
        //自定义titleView
        UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:@[@"消息", @"电话"]];
//        seg.backgroundColor = [UIColor purpleColor];
        [seg addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged];
        self.navigationItem.titleView = seg;
        
        
//        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(leftBarButtonItemAction:)];
        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"设置" style:UIBarButtonItemStylePlain target:self action:@selector(leftBarButtonItemAction:)];
//        self.navigationItem.leftBarButtonItems = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leftBarButtonItemAction:)];
        
        self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:[UIImage imageNamed:@"iconfont-daxiao"] style:UIBarButtonItemStylePlain target:self action:@selector(leftBarButtonItemAction:)];
        
        //导航栏上视图渲染颜色
        self.navigationController.navigationBar.tintColor = [UIColor blackColor];
    }

**导航栏透明问题可以参考文章:导航栏透明度问题 http://www.jianshu.com/p/96fb78e70740
iOS 导航栏透明,变色动画 http://www.jianshu.com/p/c4b542913e6f **

回调方法

- (void)leftBarButtonItemAction:(UIBarButtonItem *)bar{
    self.view.backgroundColor = [UIColor colorWithRed:arc4random() % 256 / 255.0 green:arc4random() % 256 / 255.0 blue:arc4random() % 256 / 255.0 alpha:arc4random() % 256 / 255.0];
    
}
- (void)segmentedControlAction:(UISegmentedControl *)seg{
    
    NSLog(@"nihao");
}

相关文章

  • 学习笔记-导航栏控制器

    导航控制器(UINavigationController) 导航控制器:其功能是导航,而非显示视图 导航控制器的创...

  • iOS导航返回指定控制器

    导航控制器原理: 导航控制器:是一个容器视图控制器,专门用来管理其他的视图控制器,导航控制器管理的视图控制器在导航...

  • 导航控制器

    导航控制器 多控制器的跳转 导航控制器view的结构 导航条y:20H:44 存放栈顶控制器的view 导航控制器...

  • IOS开发 导航控制器切换

    本节学习内容 1.导航控制器视图管理概念 2.导航控制器视图切换的原理 3.导航控制器视图切换应用 导航控制器函数...

  • nav图文讲解(总结)

    首先是导航控制器下的视图结构 导航控制器的三个区:导航区:导航控制器的navigationBar,管NSArray...

  • ios基础总结

    1.导航控制器 1.导航控制器是UIVIewController的子类,导航控制器想当于一个管理控制器的Contr...

  • 导航控制器的自定义导航栏(代码)以及导航控制器的push转场动画

    1.导航控制器的导航栏 2.导航控制器的push转场动画

  • UINavigationBar、UINavigationItem

    一、UINavigationBar 1、导航条navigationbar属于导航控制器,一个导航控制器只有一个导航...

  • 导航控制器

    程序一进入时,就要让窗口的跟控制器是一个导航控制器. 1.新建窗口 2.创建导航控制器,并设置导航控制器的跟控制器...

  • 导航控制器

    在Appledelegate.m中将导航控制器设置为根视图控制器,这样APP运行就直接进入导航控制器 导航栏的定制...

网友评论

      本文标题:导航控制器

      本文链接:https://www.haomeiwen.com/subject/mierjttx.html