视图控制器的概念和作用:

视图控制器像一个大管家一样,负责视图的添加,卸载,横竖屏等

每一个界面都由一个视图控制器来管理

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相关推荐

  1. php配置控制器和视图位置,视图控制器

    视图控制器 视图控制器是连接控制器和模板的桥梁, 更是对模板的强大扩展 基本用法 视图控制器文件夹位于 app\web\views 目录下, 视图控制器的名称是和控制器的名称相对应的, 并在结尾加上V ...

  2. 一劳永逸,iOS 网页视图控制器通用类封装

    原文链接:http://www.jianshu.com/p/553424763585 随着 H5 的发展,在 iOS 开发中,网页视图的使用率逐渐提升,为了增加代码封装度.减轻开发负担,因此通常会对网 ...

  3. iOS-UIViewController视图控制器跳转界面的几种常用方法

    一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能, ...

  4. iOS翻页视图控制器UIPageViewController的应用

    2019独角兽企业重金招聘Python工程师标准>>> iOS翻页视图控制器UIPageViewController的应用 一.引言 UIPageViewController是iOS ...

  5. iOS10 UI教程视图的绘制与视图控制器和视图

    iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的. ...

  6. [译] 通过视图控制器容器和子视图控制器避免庞大的视图控制器

    原文地址:Avoiding Massive View Controller using Containment & Child View Controller 通过视图控制器容器和子视图控制器 ...

  7. swift UI专项训练5 定制视图控制器

    我们现在已经添加了两个场景了,尽管我们有默认的视图控制器,但是我们还是想自己定制一下自己的控制器,我们之前一直在storyboard上做操作,现在来些一些代码. 在工程目录中右键选择new fie,在 ...

  8. iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法

    一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能, ...

  9. 在视图控制器之间传递数据

    我是iOS和Objective-C以及整个MVC范例的新手,但我坚持以下几点: 我有一个充当数据输入表单的视图,我想给用户选择多个产品的选项. 这些产品在另一个带有UITableViewControl ...

最新文章

  1. 用Python打造一款文件搜索工具,所有功能自己定义
  2. 后退N帧协议中的滑动窗口
  3. 嫦娥“挖土”归来有多难?看看中国首颗返回式卫星的故事
  4. 深入理解JavaScript模拟私有成员
  5. python基础8(来自廖雪峰的官方网站)
  6. Linux软件安装的几种常见方式介绍
  7. boost::test模块测试可变参数样本元素支持和数据集定义的移动语义
  8. hive的udf,udaf,udtf各自依賴兩種class(转载+分析整理)
  9. java range(10)_Java 中的十个 ” 单行代码编程 ” ( OneLiner )
  10. python-万能函数装饰器
  11. Moonlight 2紧随Silverlight而来
  12. 爬虫实例4 爬取网络小说
  13. 图像处理之常见二值化方法汇总
  14. mysql 主键和候选键_2.2.2 候选键与主键
  15. word图文设计:如何用图片水印功能制作日历画册
  16. ARM 编译工具链详解
  17. 【Axure】Axure RP制作日期控件
  18. Σoφoς:简单但有效的前向安全对称可搜索加密
  19. 测试用例的思路---矿泉水瓶
  20. 计算机网络和因特网笔记

热门文章

  1. Spring mvc 组件
  2. werkzeug.local
  3. TensorFlow models/research
  4. 数据算法之选择排序(selectSort)的Java实现
  5. Oracle日期操作函数
  6. 淮海工学院期末考试Oracle,【2017年整理】淮海工学院物理化学下册期末试题.doc...
  7. java项目经验案例_PLC与POE结合项目经验案例总结
  8. linux 64位module内联汇编,@yuanbor: Linux内联汇编总结
  9. php 模板 自定义函数调用,thinkphp模板中使用自定义函数
  10. Linux学习总结(55)——Linux 运维常用脚本