• 比较容易理解的iPhone多视图 (转)


    总结一下今天的学习成果,说说我对iPhone多视图的理解.感谢鹏哥的指导.

          iPhone的多视图就如Android的多个Activity之间的切换.<<iPhone开发基础教程3>>里面讲得比较复杂,网上的例子又用到delegate神马的,目前难以理解.我这个是完全基础方法,个人觉得容易理解.我会将详细步骤说明.

    三个view的样式:

    我通过按钮"1",进入紫色View,再按"再进入"进入"绿色View.最后按"返回"回到黄色View;



    比较容易理解的iPhone多视图比较容易理解的iPhone多视图

    比较容易理解的iPhone多视图

    贯穿整个程序的思路是:

    按下按钮->清空原来的View->创建新View;


    步骤:

    1   新建一个View-based Application项目,名字叫Switch2View.

    比较容易理解的iPhone多视图

    2   创建MainViewController类和Btn1ViewController类.

    比较容易理解的iPhone多视图

    (我的理解:这里的类是用来生成作为控制该类对应View的工具)

    3    布局Switch2ViewController的nib文件,如上图黄色View.

          还要创建MainView(上面绿图)和Btn1View(上面紫图),Outlet和对象链接

           步骤一般是先是view输出口链接,再到按键响应链接,"返回按钮"当作一般按钮处理;

    4  创建Switch2ViewController的View到Btn1View的View的切换

        (1)  修改Switch2ViewController的头文件:

      比较容易理解的iPhone多视图

        (2)  实现- (IBAction) showBtn1View以及 - (void) removeAllView

    比较容易理解的iPhone多视图   解析一下每一段代码:

          (2.1)   showBtn1View方法里面:

          //创建一个Btn1ViewController对象 ,此对象用于传输含有BtnView的新对象到原来本类(Switch2ViewController)已声名对象

         //btn1ViewController 中.

           Btn1ViewController *_btn1ViewController = [[Btn1ViewController allocinitWithNibName:@"Btn1View" bundle:nil];


          

           self.btn1ViewController = _btn1ViewController;


         

           //释放_btn1ViewController并且执行本类实例方法 - (void) removeAllView;


            [_btn1ViewController release];

            [self removeAllView];


            //插入新的视图到第2层


            //如果插入第1层或第0层,转换View后会有图像残余

           [self.view insertSubview:self.btn1ViewController.view atIndex:2];

         (2.2) removeAllView方法里面

         //获取本类视图的子View层数,并逐层移除,目的是移除本类全部子View

         for(NSInteger i=0;i<[self.view.subviews count];i++)


          [[self.view.subviews objectAtIndex:i] removeFromSuperview];


         (3)在MainWIndow.xib中创建Switch2ViewController实例

        首先,在MainWindow.xib中加入一个ViewController类,然后选择归属到Switch2Controller类,名字自动变换.
        再选择这个类,按(苹果键 + 1),出现了一个对话框,在NIB NAME那里选择Switch2ViewController.
  • 相关阅读:
    GitTortoise + Git Source Control Provider使用笔记
    Manage your ViewEngine(Wirte by myself)
    JSON DATE 转换标准的一些资料(收集)
    IE 6崩溃第一条禁用所有插件
    invalid label problem
    使用jQuery Html() 作为客户端htmlEncode的问题
    在WIN7下使用XP Mode安装IE6+
    Jquery simple friendly scroll
    Cygwin使用指南
    How to enable Plain Text Password
  • 原文地址:https://www.cnblogs.com/zhwl/p/2274725.html
Copyright © 2020-2023  润新知