iOS视图控制器总结

 //控制器: UINavigationController(有层级关系, 一般:都是这一页进入下一页),栈管理(push, pop, 一般都是 self.navigation push ) UITabBarController(并列关系, 微信, QQ 页面, 下面都有很多的按钮, 是放在UITabBarController管理的页面的 viewController 中.); 没有关系:模态切换(一个页面进入其评论页面, 一般都是 prent, dismiss);
    //navigationController 自带view(有导航栏),navigationItem
    //tabBarController 自带 view(有 tabBar),tabBarItem
    //tabelViewController, 自带 view(是tabelView)
    //UIView 自带 view; 之后, 用 self

    //具体:
    //导航控制器如何管理视图控制器?
    //1.通过栈的形式管理视图控制器(管理的都是视图控制器)
    //2.切换到下一个页面, 入栈(push)
    //3.返回到上一个页面. 出栈(pop)
    //4.展示的栈顶的视图控制器
    //5.视图控制器共用的导航栏


    //标签视图控制器是如何管理视图控制器?
    //1.并列关系
    //2.共用一个标签栏(tabBar),tabBar 的高度为49pt(设计)
    //3.每一个视图控制器都有一个 tabBarItem, 用于管理在标签栏上展示的内容
    //4.刚开始只加载第一个页面, 其他页面必须点击才加载, 每个页面只加载一次, 反复点击, 不重复加载.
    //5.标签栏上最多展示5个, 超过5个, 最后一个会变成 more, 把其余的标签



    //控件: 大小frame, background 测试, 添加到父视图,

    //button,
    //自身以及 UIcontroller 子类, 都可以关联方法; button,TouchUpInside; 其他是 valueChange
    //1.便利构造器, 不需要释放;
    //2.初始化: system-按下可以,可以闪,蓝色字体; custom-自定义, showTouchWhenHeighlighted, 按下,可以闪动.

    //输入框:textField.borderStyle = UITextBorderStyleRounedRect(圆角)

    //imageView: clipBounds = YES, layer.cornerRadius = 半径

    //textAlignment = NSTextAlignmentCenter

    //UISegementedControl, 分页, 数组

    //传值:
    //1.传值方式
    //1.属性传值: 从前一个页面向后一个页面传值
    //a.在后一个页面, 根据传值的类型和个数, 写属性
    //b.在前一个页面, 为属性赋值
    //c.在后一个页面, 使用值

    //2.代理传值: 从后一个页面向前一个页面传值
    //后一个页面(找代理)
    //a. 制订协议
    //b. 写delegate 属性
    //c. 在合适的时候, 让代理协议执行方法

    //3.前一个页面(成为代理)
    //a.建立关系
    //b.遵守协议
    //c.实现协议方法

    //4.单例传值: 多个页面间的传递
    //a.创建单例类
    //b. 根据参数的个数和类型, 在单例中写属性
    //c. 内容存入单例
    //d. 从单例中取内容
    //缺点:
    //a.创建对象时, 必须使用单例方法, 不能使用 alloc + init
    //b.单例到程序结束才释放, 内部不能放过大的数据.(应用从头到尾都要用, 就设置为单例)

    //5.block 传值: 从后一个页面到前一个页面(只要能写成代理传值,都可以写成 block 传值)(一般更简单)
    //后一个页面
    //a.对 block 类型, 重命名
    //b.写 block 属性, 分装 pass,优化
    //c.在合适的 时候, 调用 block


    //三天的 TabelView(基础, 编辑, 自定义)
//    UITableView, 继承于 UIScrollView
    //plist文件, 1.先读取文件, 2.数据分装(将读取的文件放到,自己的文件中) 3.展示(行,单元行)  注意使用函数(方法)

    //tableView编辑的步骤:
    //1.让 tabelView进入编辑状态 ,(导航栏按钮自带方法 editing,注意 super 也要调用)
    //2.指定哪些行, 进入编辑(默认全选), 可选的  canEditing
    //3.指定编辑的样式(默认是删除), 可选的 editStyle, 可以添加, 也可以删除(只有他在 delegate 中)
    //4.编辑完成 commit

    //tableView移动的步骤
    //1.让tableView 进入编辑状态, 第一步一样
    //2.指定哪些行, 进入 移动状态, canmove
    //3.移动完成,sourceIndextPath to  destionatinPath
    //4.限制移动(因为有的行, 不能被编辑, 但是移动会影响它), 分区之间propse (在 delegate 中)

    //plist文件的建立
    //数据分装(自己文件中建立属性根据 plist 外层)  ;UITabelViewController
    //对象属性的建立(对应字典),  KVC的重写初始化dictionary  ;NSObject
    //自定义 cell(对应战士的内容- 底板), 封装  ;UITabelViewCell
    //不同页面之间的切换(传值, 更新数据)

    //计算行高
    /*
    NSDictionary *dic = @{NSFontAttributeName: [UIFont systemFontOfSize:17]};
    CGRect rect = [joke.content boundingRectWithSize:CGSizeMake(kScreenWidth - kMargin, 0) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes: dic context:nil];
    //单元格行高是: 所有总的高度
    return rect;
    *
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值