UINavigationController大全

 

UINavigationController/导航控制器

一.相关控件


     UIBarItem:一个可以放置在bar之上的所有小控件抽象类,可以设置标题图片等
     
     UIBarButtonItem:继承上面,增加了动作和目标等button属性,相当于放在ToolBar或者bar的特殊button
     UINavigationItem:包含title,prompt,titleview,left,rig,back ButtonItem页面的所有信息
     UINavigationBar:导航栏
      toobar 底部标签栏,navigation自带默认隐藏
     

二.属性

//属性
     title:导航栏内容标题
     titleView:导航栏中间内容视图
     Prompt:提示
     backBarButtonItem:返回
     hidesBackButton:是否隐藏返回按钮
     leftBarButtonItems:左边itmes属性
     rigBarButtonItems:右边
     
     left/rigBarButtonItem:左右边item

三.修改导航栏字体大小和颜色

[self.navigationController.navigationBar  setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:19],NSForegroundColorAttributeName:[UIColor redColor],NSBackgroundColorAttributeName:[UIColor yellowColor]}];

四.修改导航栏背景色

    //修改导航栏背景色(只能在rootView中设置才有效)
     [UINavigationBar appearance].barTintColor = [UIColor yellowColor];
    
    
   //下面这个方法无效果
     self.navigationController.navigationBar.tintColor = [UIColor redColor];
    
    
    //修改导航栏背景色
   self.navigationController.navigationBar.barTintColor = [UIColor redColor];
    
    
    
   
    
    
    
//    //添加导航栏背景图片或者修改背景色 如果第二个参数是UIBarMetricsDefault那么图片颜色就是背景色
//    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"timg1.jpg"] forBarMetrics:UIBarMetricsDefault];

五.去掉导航栏下面一条线

/去除导航栏下面的一条线
     [self.navigationController.navigationBar setShadowImage:[UIImage new]];

六.添加导航栏左右按钮

    UIButton *leftbtn = [[UIButton alloc]init];
    
    [leftbtn setTitle:@"left1" forState:UIControlStateNormal];
    
    [leftbtn addTarget:self action:@selector(btnleftClack) forControlEvents:UIControlEventTouchUpInside];
    
    leftbtn.layer.borderColor = [UIColor redColor].CGColor;
    leftbtn.layer.borderWidth = 2.0f;
    leftbtn.layer.cornerRadius = 10.0;
    
    
    UIButton *leftbtn1 = [[UIButton alloc]init];
    
    [leftbtn1 setTitle:@"left2" forState:UIControlStateNormal];
    
    [leftbtn1 addTarget:self action:@selector(btnleftClack) forControlEvents:UIControlEventTouchUpInside];
    
    leftbtn1.layer.borderColor = [UIColor redColor].CGColor;
    leftbtn1.layer.borderWidth = 2.0f;
    leftbtn1.layer.cornerRadius = 10.0;
    
    
    
    UIBarButtonItem *lefItem =[[UIBarButtonItem alloc]initWithCustomView:leftbtn];
     UIBarButtonItem *lefItem1 =[[UIBarButtonItem alloc]initWithCustomView:leftbtn1];
    self.navigationItem.leftBarButtonItems = @[lefItem,lefItem1];

七.导航栏添加原色按钮

  //添加导航栏图片按钮并使导航栏添加按钮保持原色
    UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithTitle:nil style:UIBarButtonItemStylePlain target:self action:@selector(btnleftClack)];
    self.navigationItem.rightBarButtonItem = rightBarItem;
    [self.navigationItem.rightBarButtonItem setImage:[[UIImage imageNamed:@"sanheng"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

八.修改返回按钮字体颜色

 self.navigationController.navigationBar.tintColor = [UIColor blackColor];
   

九.去掉返回按钮文字

 //去掉返回文字
    self.navigationController.navigationBar.topItem.title = @"";

十.自定返回按钮

    UIButton *leftbtn1 = [[UIButton alloc]init];
    [leftbtn1 setTitle:@"返回" forState:UIControlStateNormal];
    [leftbtn1  setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
    [leftbtn1 addTarget:self action:@selector(btnleftClack) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *lefItem1 =[[UIBarButtonItem alloc]initWithCustomView:leftbtn1];
    self.navigationItem.leftBarButtonItem =lefItem1;

 

十一.跳转

    //返回根页面
    [self.navigationController popToRootViewControllerAnimated:YES];

     返回上一视图    
     [self.navigationController popViewControllerAnimated:YES];

    
    返回指定的某个vc
    for (UIViewController *vc in self.navigationController.viewControllers) {
        if ([vc isKindOfClass:[ViewController class]]) {
            [self.navigationController popToViewController:vc animated:YES];
        }
    }
    

 

十二.定制ToolBar(工具条)

//每个导航控制器,还配备了工具条(44坐标高),默认隐藏

【注】toolBar属于NavigationController,一个导航控制器,只有一个

【注】toolBarItems属于每个视图控制器,每个视图控制器单独定制

(1)拿到导航控制器中工具栏的方法

self.navigationController.toolbarHidden=NO

self.navigationController.toolbar

(2)设置工具栏的背景图片

- (void)setBackgroundImage:(UIImage *)backgroundImage forToolbarPosition:(UIBarPosition)topOrBottom barMetrics:(UIBarMetrics)barMetrics

(3)self.toolbarItems 设置底部,数组中每个元素必需是UIBarButtonItem

 

注意:视图控制器的title属性能同时为navigationItem.title和tabBarItem.title赋值

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值