zoukankan      html  css  js  c++  java
  • UITabBarController 和 UINavigationController 的详解

    首先得搞清这两个控制器之间的层级关系,我们直接看官网给的图,如下所示:

    层级关系图

    从这张图可以看到:最右边的Assembled views是呈现给用户的界面,它左边的Window是最底层的窗口,重点来了,再往左,是Tab bar view,Tab bar view的上方是Navigation view,最后是用户定制的视图。

    看完这个,代码就应该很好写了,我们需要把Navigation view加到 Tab bar view的内容上去,Tab bar view再加到Window上去。就是Window套UITabBarController,UITabBarController套UINavigationController, UINavigationController套UIViewController。

    UIViewControlleller  的tabBarItem的详情里面最后一句话: 

    The default value is a tab bar item that displays the view controller'€™s title.

    标签栏元素默认显示的是 视图控制器的标题。

    navigationItem 里面同样有这么一句话

    The default behavior is to create a navigation item that displays the view controller'€™s title.

    默认创建一个导航栏元素显示 视图控制器的标题

    1.因此 activetyLC.title = @"活动"; 同时给导航栏和标签栏赋值  就有迹可循了。

    2. 若 我们的导航栏标题 和标签栏 标题显示的不一样的时候如何赋值呢。 


    UIViewController是UINavigationController和 UITabBarController的父类

    我们看下UIViewController里面的navigationItem 和 tabBarItem 是如何说明的

    The tab bar item that represents the view controller when added to a tab bar controller.

    标签栏元素 代表 控制器被  添加到的标签栏控制器 的标签栏元素 (父标签栏 标签元素)

    The navigation item used to represent the view controller in a parent'€™s navigation bar. (read-only)

    导航栏元素代表着 父视图控制器的导航栏 元素 (父 导航栏 导航元素)

    按照上面我所说的层次关系,在 最上层的 UIViewController

    这样写:

     self.navigationItem.title = @"活动";

      self.tabBarItem.title = @"活动123";  会如何??

    结果是: 导航栏 标题 显示  “活动” ,标签栏为 “空”。

    若我们给导航栏的 tabBarItem 赋值。

    activetyNC.tabBarItem.title = @"活动";

    则 标签栏 正常显示 “活动”。 

    结合上面的 UIViewController里面对 导航元素和 标签元素的 介绍。 这样就明白了。

    虽然 


    UINavigationController和 UITabBarController 都继承自 UIViewController,他们中都有 标签元素和导航元素属性,但是

    对于:UIViewController navigationItem 和 tabBarItem 没有赋值,则为空,若父视图为导航栏控制器,navigationItem为 导航栏控制器的 navigationItem; 若父类为 标签控制器,则 tabBarItem为 标签控制器的 tabBarItem。

  • 相关阅读:
    9、UmbracoNewsSite:分页
    7、UmbracoNewsSite:新闻详情页
    6、UmbracoNewsSite:添加新闻分类
    5、UmbracoNewsSite:添加css和js文件
    3、UmbracoNewsSite:文档类型设置
    书单
    文章
    Django-rest framework框架
    Django框架
    前端快速入门
  • 原文地址:https://www.cnblogs.com/mafeng/p/5698691.html
Copyright © 2011-2022 走看看