05_视图控制器_1
视图控制器的概念和作用:
视图控制器像一个大管家一样,负责视图的添加,卸载,横竖屏等
每一个界面都由一个视图控制器来管理
UIViewController是所有视图控制器的父类
每一个视图控制器都自带一个UIView
//在没有创建XIB文件的时候,第3行代码并不会被执行。
//因为执行创建myViewController1的view的前提条件是:1.当前视图控制器的根视图是nil 2.调用了根视图的选择器getter方法
1 myViewController1 *mycontr1 = [[myViewController1 alloc]init]; 2 3 mycontr1.view.backgroundColor = [UIColor yellowColor]; 4 5 self.window.rootViewController = mycontr1; 6 7 mycontr1.view.backgroundColor = [UIColor greenColor];
模态
模态视图的使用场景:
1.收集用户输入信息
2.临时呈现一些内容,例如广告等
3.临时改变工作模式
4.呈现一个新的view层级
注意:这几种情况都会暂时中断程序正常的执行流程
具体实现:
在第一个.m文件中创建button方法:
1 - (IBAction)buttonInAction:(UIButton *)sender { 2 myViewController2 *myContr2 = [[myViewController2 alloc]init]; 3 4 [self presentViewController:myContr2 animated:YES completion:nil]; 5 }
在第二个.m文件中创建button方法:
1 - (IBAction)backAction:(UIButton *)sender { 2 [self dismissViewControllerAnimated:YES completion:nil]; 3 }
即实现了简单的一个页面跳转的模态
课堂练习 利用代理创建一个模态视图:
首先应该设定一个协议
@protocol presentDelegate <NSObject>- (void)transmit:(NSString *)transmit;@end
然后应该在@interface中声明一个代理对象
@property (nonatomic,weak)id<presentDelegate> delegate;
接着在第二个.m文件调用协议方法,将数值传入到第一个视图中
- (void)buttonAction{[self.delegate transmit:_text.text];[self dismissViewControllerAnimated:YES completion:nil]; }
在第一个视图中签订一下协议
1 @interface ViewController1 : UIViewController <presentDelegate>
在第一个视图中调用button方法的时候设定代理
1 - (void)buttonAction{ 2 3 ViewController2 *mycontr2 = [[ViewController2 alloc]init]; 4 mycontr2.delegate = self; 5 6 [self presentViewController:mycontr2 animated:YES completion:nil]; 7 8 }
最后实现一下协议方法,将内容接收到,便可以显示到第一个视图中的label中了
1 - (void)transmit:(NSString *)transmit{ 2 _label1.text = transmit; 3 4 }
@end
转载于:https://www.cnblogs.com/studyController/p/5634150.html
05_视图控制器_1相关推荐
- php配置控制器和视图位置,视图控制器
视图控制器 视图控制器是连接控制器和模板的桥梁, 更是对模板的强大扩展 基本用法 视图控制器文件夹位于 app\web\views 目录下, 视图控制器的名称是和控制器的名称相对应的, 并在结尾加上V ...
- 一劳永逸,iOS 网页视图控制器通用类封装
原文链接:http://www.jianshu.com/p/553424763585 随着 H5 的发展,在 iOS 开发中,网页视图的使用率逐渐提升,为了增加代码封装度.减轻开发负担,因此通常会对网 ...
- iOS-UIViewController视图控制器跳转界面的几种常用方法
一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能, ...
- iOS翻页视图控制器UIPageViewController的应用
2019独角兽企业重金招聘Python工程师标准>>> iOS翻页视图控制器UIPageViewController的应用 一.引言 UIPageViewController是iOS ...
- iOS10 UI教程视图的绘制与视图控制器和视图
iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的. ...
- [译] 通过视图控制器容器和子视图控制器避免庞大的视图控制器
原文地址:Avoiding Massive View Controller using Containment & Child View Controller 通过视图控制器容器和子视图控制器 ...
- swift UI专项训练5 定制视图控制器
我们现在已经添加了两个场景了,尽管我们有默认的视图控制器,但是我们还是想自己定制一下自己的控制器,我们之前一直在storyboard上做操作,现在来些一些代码. 在工程目录中右键选择new fie,在 ...
- iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法
一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能, ...
- 在视图控制器之间传递数据
我是iOS和Objective-C以及整个MVC范例的新手,但我坚持以下几点: 我有一个充当数据输入表单的视图,我想给用户选择多个产品的选项. 这些产品在另一个带有UITableViewControl ...
最新文章
- 用Python打造一款文件搜索工具,所有功能自己定义
- 后退N帧协议中的滑动窗口
- 嫦娥“挖土”归来有多难?看看中国首颗返回式卫星的故事
- 深入理解JavaScript模拟私有成员
- python基础8(来自廖雪峰的官方网站)
- Linux软件安装的几种常见方式介绍
- boost::test模块测试可变参数样本元素支持和数据集定义的移动语义
- hive的udf,udaf,udtf各自依賴兩種class(转载+分析整理)
- java range(10)_Java 中的十个 ” 单行代码编程 ” ( OneLiner )
- python-万能函数装饰器
- Moonlight 2紧随Silverlight而来
- 爬虫实例4 爬取网络小说
- 图像处理之常见二值化方法汇总
- mysql 主键和候选键_2.2.2 候选键与主键
- word图文设计:如何用图片水印功能制作日历画册
- ARM 编译工具链详解
- 【Axure】Axure RP制作日期控件
- Σoφoς:简单但有效的前向安全对称可搜索加密
- 测试用例的思路---矿泉水瓶
- 计算机网络和因特网笔记
热门文章
- Spring mvc 组件
- werkzeug.local
- TensorFlow models/research
- 数据算法之选择排序(selectSort)的Java实现
- Oracle日期操作函数
- 淮海工学院期末考试Oracle,【2017年整理】淮海工学院物理化学下册期末试题.doc...
- java项目经验案例_PLC与POE结合项目经验案例总结
- linux 64位module内联汇编,@yuanbor: Linux内联汇编总结
- php 模板 自定义函数调用,thinkphp模板中使用自定义函数
- Linux学习总结(55)——Linux 运维常用脚本