博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
比较容易理解的iPhone多视图
阅读量:5247 次
发布时间:2019-06-14

本文共 1627 字,大约阅读时间需要 5 分钟。

总结一下今天的学习成果,说说我对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类.

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

布局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 alloc] initWithNibName:@"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.

  累了,不想写.基本上差不多了``关键是上面两段代码```

 

 

转:

 

 

转载于:https://www.cnblogs.com/jackljf/archive/2012/08/26/3589338.html

你可能感兴趣的文章
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
渣渣小本求职复习之路每天一博客系列——Java基础(3)
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>