zoukankan      html  css  js  c++  java
  • iOS 修改navigationController返回按钮颜色和文字

    引言

    在iOS开发过程中,NavigetionController(导航栏)算是比较常用的一种控件,而系统自带的样式有时候往往不是我们所需要的,这时候就要求我们必须自定义或修改一下。

    修改返回键的标题

    1、错误使用:以下三种方式都不能修改返回键的title(方式三可以修改NavigetionItem的leftBarButtonItem,但不能修改backBarButtonItem的样式)

     //最近iOS项目中要求导航栏的返回按钮只保留那个箭头,去掉后边的文字,在网上查了一些资料,最简单且没有副作用的方法就是
        [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
        // 方式一
        self.navigationItem.leftBarButtonItem.title = @"返回";
        // 方式二
        self.navigationItem.backBarButtonItem.title = @"返回";
        // 方式三
        UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.frame = CGRectMake(0, 0, 80, 49);
        [button setTitle:@"返回" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
        self.navigationItem.backBarButtonItem = backButtonItem;
    
    --------------------- 


    2、正确使用:

    // 细节: 本界面上设置, 下个界面上显示

     // 细节: 本界面上设置, 下个界面上显示
        // 方式一
        self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
        // 方式二
        UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] init];
        backButtonItem.title = @"返回";
        self.navigationItem.backBarButtonItem = backButtonItem;
    
    --------------------- 

    修改返回键的颜色


    由图可以看出,想要修改返回键的颜色可以:

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


    最后说一下使用pushViewController切换到下一个视图时,navigation controller按照以下3条顺序更改导航栏的左侧按钮(本段摘自网络):

    1、如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;
    2、如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;
    3、如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视图的标题;


    扩展1:

    // 设置导航条的色调 理解为"混合色"
    self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
    // 导航栏默认是半透明状态
    self.navigationController.navigationBar.backgroundColor = [UIColor blueColor];
    // 左边返回按键颜色
    // 导航栏标题颜色
    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
    self.navigationController.navigationBar.translucent = NO;
  • 相关阅读:
    MongoDB中_id(ObjectId)生成
    springMVC 拦截器源码解析
    初识设计模式(代理模式)
    vue VNode如何使用,是什么东西?
    AOP 怎么理解?
    Java集合框架——jdk 1.8 ArrayList 源码解析
    System.arraycopy 怎么使用的?
    Java集合框架——容器的快速报错机制 fail-fast 是什么?
    maven 如何依赖工程项目里面的 jar 包
    IDEA maven 项目如何上传到私服仓库
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/10818481.html
Copyright © 2011-2022 走看看