iOS开发 ~应用程序设计理念:视图控制器(UIViewController)、视图(UIView)
应用程序设计理念:视图控制器(UIViewController)、视图(UIView)
利用视图控制器(底层)管理视图(外观),一对一
1.视图的作用:负责显示的外观
2.视图控制器的作用:创建界面、管理视图的生命周期
3.UIViewController的UIView关系:系统的UIViewController中天生自带一个视图,UIView通过self.view属性来访问控制器自带的这个视图
4.viewDidLoad方法:创建视图时会自动调用,而且只被调用一次,有关视图的初始化工作都会放在这个方法中
5.使用VC的步骤:
step1:编写一个类,继承自UIViewController
step2:重写类中的viewDidLoad方法,创建界面内容
step3:在didFinishLaunching方法中,创建window的实例,创建vc的实例,将vc设置为window的rootViewController(根vc),显示window
实际操作如下:
1.创建控制器
在AppDelegate.m中
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
//self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor=[UIColor greenColor];
//1.创建控制器的实例 myVC自带一个视图
ViewController* myVC=[[ViewController alloc]init];
//2.将控制器设置为window的根视图控制器
self.window.rootViewController=myVC;
//self.window.rootViewController=[ViewController new];
[self.window makeKeyAndVisible];
return YES;
}
2.视图控制器viewDidLoad方法
1).控制器拥有对其自带的视图的生命周期(创建--->销毁)管理权
2).在视图的生命周期的第一个阶段就是执行viewDidLoad方法
3).作用:用于创建视图,如:初始化界面、创建界面的显示元素
4).特点:在整个生命周期中,只会被执行一次
例:
在 ViewController.m中
(自己创建的类,继承了UIViewController父类方法,并重写了viewDidLoad方法)
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//控制器拥有对其自带的视图的生命周期(创建--->销毁)管理权
//在视图的生命周期的第一个阶段就是执行viewDidLoad方法
//作用:用于创建视图,如:初始化界面、创建界面的显示元素
//特点:在整个生命周期中,只会被执行一次
- (void)viewDidLoad
{
[super viewDidLoad];
//设计view
UILabel *label=[[UILabel alloc]init];
label.frame=CGRectMake(110, 200, 100, 40);
label.text=@"HelloWlord";
label.textColor=[UIColor redColor];
//添加到控制器自带的那个视图里面
[self.view addSubview:label];
}
@end
效果如下:

iOS开发 ~应用程序设计理念:视图控制器(UIViewController)、视图(UIView)的更多相关文章
- 学习方法和阶段介绍 、 iOS界面开发引入 、 构造第一个App 、 视图控制器和视图 、 控件与事件 、 InterfaceBuilder
1 创建并运行第一个App 1.1 问题 使用Xcode创建一个App项目,该应用实现功能在界面上显示Hello World标签,在模拟器中的运行结果如图-1所示: 图-1 1.2 方案 分析图-1, ...
- 学习笔记:iOS 视图控制器(UIViewController)剖析
转自:http://www.cnblogs.com/martin1009/archive/2012/06/01/2531136.html 视图控制器在iOS编程中占据非常重要的位置,因此我们一定要掌握 ...
- iOS开发人员程序许可协议
请细致阅读以下的许可协议条款和条件之前下载或使用苹果软件. 这些条款和条件构成你和苹果之间的法律协议. iOS开发人员程序许可协议 目的 你想使用苹果软件(例如以下定义)来开发一个或多个应 ...
- IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较
//代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtto ...
- 【iOS开发-21】UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解
(1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最以下,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...
- iOS10 UI教程视图的绘制与视图控制器和视图
iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的. ...
- Cocoa编程中视图控制器与视图类详解
iPhone编程规则是:一个窗口,多个视图.UIView是iPhone屏幕上很多控件的基础类.每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView ...
- ##DAY3 自定义视图、视图控制器、视图控制器指定视图、loadView、 viewDidLoad、MVC、屏幕旋转、内存警告
##DAY3 自定义视图.视图控制器.视图控制器指定视图.loadView. viewDidLoad.MVC.屏幕旋转.内存警告 #pragma mark ———————自定义视图的步骤 —————— ...
- iOS开发之视图控制器(UIViewController)
视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视 ...
- [转]iOS之浅谈纯代码控制UIViewController视图控制器跳转界面的几种方法
参考:http://www.mamicode.com/info-detail-469709.html 一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能( ...
随机推荐
- linux oracle 设置随系统自动启动数据库实例和监听
在root账户下修改/etc/oratab 文件: # vi /etc/oratab 找到orcl=/db/app/oracle/product/11.1.0/db_1 :N这一行 改为: orcl= ...
- 你真的了解:IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数 吗?
原文链接:http://www.cnblogs.com/yinhaichao/p/4060209.html?utm_source=tuicool&utm_medium=referral 一般购 ...
- 16 Socket通信(简单例子)
服务端代码: import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Da ...
- c++模板编程-异质链表
概念: 像一个普通的链表结点中,其中成员next通常是指向同类型结点的指针.这就约束了链表中结点必须是同一类型,从而整个链表都只能保存同一类型的数据.而异质链表则是让next指向任何一种类型,也包括存 ...
- Java中通过递归调用删除文件夹下所有文件
摘自 : http://blog.sina.com.cn/s/blog_79333b2c0100xiu4.html import java.io.File; public class FileTest ...
- xml解析,练习
<collection shelf="New Arrivals"><movie title="Enemy Behind"> < ...
- 常用js代码整理、收集
个人整理了一下个人常用到的一些js代码,以方便学习以及日后使用,或许有一些是个人之前从网上摘下来的,但是不记得是具体从哪里来的了,如果你看到有一段代码跟你的文章很相似甚至一样,请不要气愤,请告诉我,我 ...
- Python批量修改文本文件内容
Python批量替换文件内容,支持嵌套文件夹 import os path="./" for root,dirs,files in os.walk(path): for name ...
- C语言学习中容易模糊的一些概念
1.什么叫分配内存 操作系统把某一块内存空间的使用权利分配给该程序 2.释放内存 操作系统把分配给该程序的内存空间的使用权利收回,该程序就不能再使用这块内存空间 注:释放内存空间并不是把这块内存的数据 ...
- 深入理解Azure自动扩展集VMSS(3)
在实际使用过程当中,使用VMSS有一些最佳实践的建议和限制,便于你在做自动扩展设计的时候进行考虑: 关于VMSS 如果你使用的是系统镜像,一个扩展集中虚拟机数量不能超过100 无论是在ASM还是ARM ...