欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

QQ框架 UITabBarController 静态单元格、Modal

程序员文章站 2022-04-15 18:37:15
UITabBarController跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是QQ、微信等应用UITabBarController的简单使用UITabBarController的使用步骤初始化UITabBarController设置UIWindow的rootViewController为UITabBarController根据具体情况,通过addChildViewCon...

UITabBarController

跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是QQ、微信等应用

QQ框架 UITabBarController 静态单元格、Modal

UITabBarController的简单使用

UITabBarController的使用步骤

  1. 初始化UITabBarController
  2. 设置UIWindow的rootViewController为UITabBarController
  3. 根据具体情况,通过addChildViewController方法添加对应个数的子控制器

UITabBarController的子控制器

UITabBarController添加控制器的方式有2种

添加单个子控制器

- (void)addChildViewController:(UIViewController *)childController; 

设置子控制器数组

@property(nonatomic,copy) NSArray *viewControllers;

UITabBarController的view结构

QQ框架 UITabBarController 静态单元格、Modal

UITabBar

如果UITabBarController有N个子控制器,那么UITabBar内部就会有N个UITabBarButton作为子控件

如果UITabBarController有4个子控制器,那么UITabBar的结构大致如下图所示

QQ框架 UITabBarController 静态单元格、Modal

UITabBarButton

UITabBarButton里面显示什么内容,由对应子控制器的tabBarItem属性决定

QQ框架 UITabBarController 静态单元格、Modal

App主流UI框架结构

QQ框架 UITabBarController 静态单元格、Modal

QQ框架 UITabBarController 静态单元格、ModalQQ框架 UITabBarController 静态单元格、Modal

QQ框架 UITabBarController 静态单元格、Modal


 [[[UIView alloc]init] sizeToFit];//根据uiview对象中的内容自己适应大小  与x y 无关
    
    UIImageView* imageView = [[UIImageView alloc]init];
    imageView.image = [UIImage imageNamed:@"setting_about_pic"];

    [imageView sizeToFit];//若没有这句  imageView显示不出来  因为 Imageview没有大小 lable也可使用
    [self.view addSubview:imageView];

editor —> size to fot content

静态单元格可以不写数据源方法

Modal

除了push之外,还有另外一种控制器的切换方式,那就是Modal

任何控制器都能通过Modal的形式展示出来

Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止

以Modal的形式展示控制器

- (void)presentViewController:(UIViewController *)viewControllerToPresent 
                     animated: (BOOL)flag 
                   completion:(void (^)(void))completion 

关闭当初Modal出来的控制器

- (void)dismissViewControllerAnimated: (BOOL)flag 
                           completion: (void (^)(void))completion;

QQ框架 UITabBarController 静态单元格、Modal

A控制器Modal到B控制器    presentingViewController代表A控制器  presentedViewController代表B控制器

A跳到B B里执行dismiss 其实是B给A发消息 让A关闭了B

谁负责显示,谁就负责关闭  A弹出来的B,那么A就负责关闭B

在storyboard中 无法关闭B

在storyboard中,点击线  选modal属性

在代码中:

QQ框架 UITabBarController 静态单元格、Modal

有业务逻辑,用push,否则 用Modal

本文地址:https://blog.csdn.net/qq_41431406/article/details/109026942