UITabBarController的注意点

  • 使用UITabBarController和使用一般的控制器一样,比如可以设置

    self.window.rootViewController = tabBarController;
    
  • 使用addChildViewController方法可以给其添加子控制器。每个子控制器对应一个UITabBarButton,也就是在UITabBarController下面的选项。此时如果想要改变UITabBarButton的内容,比如想要设置title, image等内容,需要在其对应的子控制器里面通过修改tabBarItem的属性来设置内容。

    // JYViewController.m -> 是UITabBarController的子控制器
    - (void)viewDidLoad
    {
      [super viewDidLoad];
    
          self.tabBarItem.title = @"选项1";
          self.tabBarItem.badgeValue = @"1";
    }
    

    这一点和UINavigationController是类似的,在使用UINavigationController的时候,我们在当前显示的控制器(也就是栈顶的控制器)中通过修改navigationItem来设置导航栏中的内容。

    self.navigationItem.leftBarButtonItem = ...;
    

    也就是说,使用UINavigationController和UITabBarController的时候:

    • 在其对应的控制器里面修改导航栏和tabBar的内容。
    • 通过修改tabBarItemnavigationItem的属性来设置导航栏和tabBar的内容。其实tabBarItem和navigationItem属于模型(从NSObject继承,以...Item结尾的可以都推测为模型?),此时我们通过修改模型来修改view中显示的内容。
  • 当UINavigationController和UITabBarController同时使用的时候,如果让navigationController作为self.window.rootViewController,然后再让tabBarController成为navigationController的子控制器,这么做是合法的,但是会有一些问题。

    因为前面说过,navigationBar上显示的内容是通过在其当前显示的子控制器中修改的,但是此时navigationController直接显示的子控制器是tabBarController,所以当进入不同的界面的时候,我们希望navigationBar上的内容(比如title)改变,但是此时是做不到的,因为我们无法在UITabBarController中修改navigationBar的内容。

    所以一般来说我们会让tabBarController作为根控制器,如果其他自定义的子控制器需要navigationController,那么就让每个自定义的控制器对应的navigationController作为tabBarController的子控制器,然后让自定义的控制器作为navigationController的子类。这样就可以在自定义控制器中修改navigationController的navigationBar显示内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,591评论 2 4
  • 废话不多说,直接上干货 ---------------------------------------------...
    小小赵纸农阅读 3,446评论 0 15
  • 女神营养餐,用水果代替蔬菜可行吗? 水果和蔬菜虽然都是健康的食材,但大部分情况下,水果并不能代替蔬菜。 从营养上来...
    旅情香膏阅读 481评论 0 0
  • 【原文】 子曰:学而不思则罔,思而不学则殆。 【译文】 孔子说:只是读书,却不思考,就会受骗;只是空想,却不读书,...
    甜_sweet阅读 210评论 0 0
  • 许久未曾绘画 ,快忘了我也是一名曾向往艺术 ,被阳光沐浴在21世纪的新新人类。呵呵! 可现在 看不清自己的心,不上...
    风筝先生阅读 338评论 0 0