• iOS UINavigationBar-导航栏、UINavigationItem-导航项


    一、什么是导航栏(UINavigationBar)。 

     UINavigationBar(导航栏)是UINavigationController(导航控制器)的一个属性。是导航栏控制器上的一个组成部分。

      *一个导航栏控制器包含一个导航栏(UINavigationBar)

      *一个子控制器对应一个导航项(UINavigationItem)

      *导航控制器管理一系列子控制器。UINavigationBar管理一系列UINavigationItem,每个UINavigationItem对应一个子控制器。

      

      注意:如图浅蓝色部分即是UINavigationItem,NavigationItem是在视图控制器上的,它是试图控制器的一个属性,也是一个组成部分,而不是在NavigationBar上,所以你会看到在viewController里有self.navigationItem这样的代码。UINvigationController每push一次UINavigationBar就会对应上相应的UINavigationItem。

      

     

    二、设置导航栏(UINavigationBar)标题等

      1、使用导航栏内置的标题 

        在试图控制器viewController中用self.title=@"导航栏标题";就OK了。

      2、自定义导航栏标题

        UINavigationItem有几个常用的属性,如下:(摘抄自文档,部分属性)

        @property(nonatomic,copy)   NSString        *title;//标题

        @property(nonatomic,retain) UIView          *titleView;//这是个view,能放在view上的东西应该都可以放在上面。我们可以根据这个属性自定义标题,也可以加图片背景等。

        @property(nonatomic,copy) NSArray *leftBarButtonItems NS_AVAILABLE_IOS(5_0);//在导航栏(UINavigationItem)上可以放button。左边的button,当然也有右边的button。如下原理一样。

        @property(nonatomic,copy) NSArray *rightBarButtonItems NS_AVAILABLE_IOS(5_0);

        @property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;

        @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

     

        根据titleView属性自定义导航栏标题:

        UILabel * titleLabel = [[UILabel alloc] initWithFrame: CGRectMake(0, 0, 100, 44)]; 

        titleLabel.backgroundColor = [UIColor redColor];

          titleLabel.text = @"我的视图控制器";

        self.navigationItem.titleView = titleLabel; //为什么titleView会=titleLabel呢?因为UILabel是继承与UIView的。

     

        写到这我们会发现viewController的标题,就是控制器viewController上navigationItem的上的一个继承与UIView的view,即titleView。

        navigationItem是继承与NSObject的。navigationItem是试图控制器viewController上的一部分,是它的一个属性。navigationItem也有title,也有一个titleView,如:

        self.navigationItem.title=@"";//一般我们不常设置这个属性

          self.navigationItem.titleView=@"";//titleView是navigationItem上用来放置标题,背景图等得地方。设置导航栏背景图,就是根据这个属性设置的。

     

        初学iOS,如有错误,请不吝赐教,比改之。

  • 相关阅读:
    O-C相关-06:对象与对象的关系
    O-C相关05:方法的封装.
    O-C相关04:类方法的概述与定义和调用
    Objective-C发展历史
    O-C相关-03:面向对象概念的具体介绍
    OC相关-02:oc和c的基本差异
    0-C相关01:NSlog函数介绍。
    鞭辟入里
    objective-c中字符串长度计算
    OC多文件开发介绍
  • 原文地址:https://www.cnblogs.com/ios-mengxiang/p/4357710.html
Copyright © 2020-2023  润新知