• ios开发之自己定义默认生成的导航栏 标题 颜色 返回button


    一 改动导航栏颜色    导航栏在哪个页面代码放在那里面

     self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:(21.0/255.0) green:(153.0 / 255.0) blue:(224.0 / 255.0) alpha:1];                                                   //定义导航栏颜色

     self.navigationItem.title = @"自己定义";       //定义导航栏的标题

    二 导航栏自带一个返回button,我们须要定制它的样式。这能够有很多办法。

    比方 Hack 导航栏的视图层次。假设你不想 Hack 导航栏。那么你能够使用NavigationBarDelegate。

    问题在于,假设是导航控制器自带的NavigationBar。你将不能訪问NavigationBar(程序会Crash)。这是苹果文档中的说明:

    Note that if you use aUINavigationController object to manage hierarchical navigation, you should notdirectly access the navigation bar object.

    这里,我们提供还有一种“定制”方法。

    或许不能称之为定制。由于我们实际上是将默认的返回button隐藏了,并提供一个自己定义的返回button作为导航栏的leftButton。使用这样的方法,我们不仅能够定制button的样式(标题和背景图片)。并且能够触发自己定义的方法。默认的返回button动作是popViewController,我们能够改动为其它动作。

    这个过程大概分为4个步骤:

    1、隐藏默认返回button,这是通过设置navigationItem的hidesBackButton为YES做到的:

    //隐藏默认的"返回"button

    [self.navigationItemsetHidesBackButton:YES];


    2、自己定义一个BarButtonItem。首先,我们定制一个UIButton。 这个UIButton用buttonWithType:UIButtonTypeCustom方法初始化。然后用setBarckgroundImage方法定制button的背景图片。用addTarget方法指定button的事件处理方法。这样我们就获得了一个全然定制的Button。BarButtonItem有一个initWithCustomView:的初始化方法。我们能够把一个定制的视图(比方我们定制的Button)作为这种方法的參数,构建出一个BarButtonItem。


    //自己定义导航栏的"返回"button

    UIButton*btn = [UIButtonbuttonWithType:UIButtonTypeCustom];

    btn. frame=CGRectMake(15, 5, 38, 38);

    [btn setBackgroundImage:[UIImage imageNamed:@"返回.png"] forState:UIControlStateNormal];

    [btn addTarget:selfaction:@selector(goBackAction)forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem*back=[[UIBarButtonItemalloc]initWithCustomView:btn];


    3、把BarButtonItem 设置为 navigationItem的leftBarButton。


    //设置导航栏的leftButton

    self.navigationItem.leftBarButtonItem=back;


    4、编写Button的事件代码。

    -(void)goBackAction{

    // 在这里添加返回button的自己定义动作

    [self.navigationControllerpopViewControllerAnimated:YES];

    }

    转自:http://blog.sina.com.cn/s/blog_a5ef060c01013946.html

  • 相关阅读:
    博客园随笔备份Java脚本
    vue 获取 referer
    EntityFramework的天坑
    清空stringbuilder
    相关的验证的正则表达式
    清空StringBuilder的三种方法及效率
    oracle中的字符串函数详解
    浅谈C# application.DoEvent作用
    C# 简单Tcp通信demo
    C#中http请求下载的常用方式demo
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6853591.html
Copyright © 2020-2023  润新知