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订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    hdu 1455 N个短木棒 拼成长度相等的几根长木棒 (DFS)
    hdu 1181 以b开头m结尾的咒语 (DFS)
    hdu 1258 从n个数中找和为t的组合 (DFS)
    hdu 4707 仓鼠 记录深度 (BFS)
    LightOJ 1140 How Many Zeroes? (数位DP)
    HDU 3709 Balanced Number (数位DP)
    HDU 3652 B-number (数位DP)
    HDU 5900 QSC and Master (区间DP)
    HDU 5901 Count primes (模板题)
    CodeForces 712C Memory and De-Evolution (贪心+暴力)
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3490898.html
Copyright © 2011-2022 走看看