zoukankan      html  css  js  c++  java
  • 1210笔记//关于导航实例-QQ空间//导航实例-storyboard实现//控制器的生命周期//控制器的生命周期方法

    一、利用storyboard完成导航
    1.storyboard中用来跳转的每一根线 都是 一个 UIStoryboardSegue对象
    1自动跳转 (从 某个按钮 拖线到 下一个目的控制器)

    2手动跳转 (从 来源控制器 拖线到 下一个目的控制器)
    一定要给segue绑定一个唯一的identifier
    如何跳转?通过来源控制器的一个方法来执行这个UIStoryboardSegue对象
    [
    self performSegueWithIdentifier:@"login2home" sender:nil];

    2.UIStoryboardSegue对象
    // 唯一标识
    @property (nonatomicreadonly) NSString *identifier;
    // 来源控制器
    @property (nonatomicreadonlyid sourceViewController;
    // 目的控制器
    @property (nonatomicreadonlyid destinationViewController;

    3.通过UIStoryboardSegue对象完成的跳转过程
    1初始化(创建)UIStoryboardSegue对象

    2设置UIStoryboardSegue对象的identifier标识   sourceViewController来源控制器

    3创建目的控制器,并且设置为UIStoryboardSegue对象的destinationViewController属性

    4在跳转之前,会调用一次sourceViewController的下面方法
    // 后面的sender参数就是当初调用performSegueWithIdentifier:sender:方法传入的参数
    - (
    void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    5执行UIStoryboardSegue对象
    [segue perform];

    6会将destinationViewController目的控制器压入栈中

    二、显示本地网页
    // 1.获得about.html文件的URL
    NSURL *url = [[NSBundle mainBundle] URLForResource:
    @"about.html" withExtension:nil];
    // 2.封装一个请求对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    // 3.加载请求
    [webView loadRequest:request];

    三、内存警告的处理过程
    1.当控制器接收到内存警告时,会调用 didReceiveMemoryWarning 方法

    2.didReceiveMemoryWarning方法内部的默认实现
    1首先会检测控制器的view在不在屏幕上
    if (self.view.superview == nil) { // 检测控制器的view在不在屏幕上
        
    // 就会尝试销毁控制器的view
        
    // 即将销毁的时候,就会调用控制器的 viewWillUnload
        
    // 销毁完毕的时候,就会调用控制器的 viewDidUnload方法
    else {
        
    // 不销毁控制器的view
    }

    3.当需要再次使用控制器的view时,又会调用loadView方法来创建view

    4.接着会调用一系列的生命周期方法
    viewDidLoad ---> ......

    5.生命周期循环
    loadView --> viewDidLoad --> ..
    可见.. --内存警告--> didReceiveMemoryWarning ---> viewWillUnload --> viewDidUnload ---再次使用---> loadView

    四、UITabBarController
    1.以选项卡的形式展示多个子控制器

    2.设置需要显示的子控制器
    1设置子控制器数组
    NSArray *viewControllers;

    2逐个添加子控制器
    // 通过这个方法添加的子控制器会自动添加到viewControllers数组中
    - (
    void)addChildViewController:(UIViewController *)childController;

    3.设置子控制器对应标签的文字和图片
    通过子控制器的tabBarItem属性设置
    vc.tabBarItem.title = 
    @"最近"// 设置标题
    vc.tabBarItem.image = [UIImage imageNamed:
    @"tab_recent_press.png"]; // 设置图标













    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    SQLServer中重建聚集索引之后会影响到非聚集索引的索引碎片吗
    设计表的时候,对于自增列做物理主键使用的一点思考
    MySQL慢查询日志相关的配置和使用。
    Python文件操作---合并文本文件内容
    浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题
    从一个简单的约束看规范性的SQL脚本对数据库运维的影响
    (译)内存沉思:多个名称相关的神秘的SQL Server内存消耗者。
    初试Python语法小试牛刀之冒泡排序
    浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化
    MySQL执行计划extra中的using index 和 using where using index 的区别
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3490898.html
Copyright © 2011-2022 走看看