小项目(一)—— QQ框架 UITabBarController&&静态单元格、Modal

UITabBarController

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

UITabBarController的简单使用

UITabBarController的使用步骤

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

UITabBarController的子控制器

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

添加单个子控制器

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

设置子控制器数组

@property(nonatomic,copy) NSArray *viewControllers;

UITabBarController的view结构

UITabBar

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

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

UITabBarButton

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

App主流UI框架结构

     

 

    [[[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;

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

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

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

在storyboard中 无法关闭B

在storyboard中,点击线  选modal属性

在代码中:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值