比较容易理解的iPhone多视图 (转)
总结一下今天的学习成果,说说我对iPhone多视图的理解.感谢鹏哥的指导.
iPhone的多视图就如Android的多个Activity之间的切换.<<iPhone开发基础教程3>>里面讲得比较复杂,网上的例子又用到delegate神马的,目前难以理解.我这个是完全基础方法,个人觉得容易理解.我会将详细步骤说明.
三个view的样式:
我通过按钮"1",进入紫色View,再按"再进入"进入"绿色View.最后按"返回"回到黄色View;
贯穿整个程序的思路是:
按下按钮->清空原来的View->创建新View;
步骤:
1 新建一个View-based Application项目,名字叫Switch2View.
2 创建MainViewController类和Btn1ViewController类.
(我的理解:这里的类是用来生成作为控制该类对应View的工具)
还要创建MainView(上面绿图)和Btn1View(上面紫图),Outlet和对象链接
步骤一般是先是view输出口链接,再到按键响应链接,"返回按钮"当作一般按钮处理;
4 创建Switch2ViewController的View到Btn1View的View的切换
(1) 修改Switch2ViewController的头文件:
(2) 实现- (IBAction) showBtn1View以及 - (void) removeAllView
解析一下每一段代码:
(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实例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述