IOS开发之XCode学习008:UIViewController基础
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm

红色框选部分用A代替,AppDelegate类在程序框架启动时,如果在info.plist中有A这个文件,那么就会查找这个文件,并加载Main.storyboard,作为主框架结构的主视窗里的视图(白色界面);
如果在info.plist中没有A这个文件,
所以在接下来的操作中会先去掉A(鼠标移到A上面并点击“-”即可),用我们自己的方式来实现该功能。
====================AppDelegate.m脚本====================
#import "AppDelegate.h"
//导入系统默认视图控制器
#import "ViewController.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//创建一个window对象
//属于AppDelegate的属性
//UIScreen:表示屏幕硬件类
//mainScreen:获得主屏幕的信息
//bounds:当前手机屏幕的大小
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
//创建视图控制器对象
ViewController* vcRoot = [[ViewController alloc] init];
//对窗口的根视图控制器进行赋值操作
//整个UIKit框架中只有一个根视图控制器,属于window的属性
//视图控制器用来管理界面和处理界面的逻辑类对象
//程序启动前必须对根视图控制器赋值
self.window.rootViewController = vcRoot;
//将window作为主视图并显示出来
[self.window makeKeyAndVisible];
return YES;
}
====================ViewController.h脚本====================
#import <UIKit/UIKit.h>
//所有的控制器都需要自定义来完成
//继承于官方UIViewController
@interface ViewController : UIViewController
@end
====================ViewController.m脚本====================
//当视图控制器第一次被加载显示视图时,调用此函数
//布局初始化视图来使用,初始化资源
- (void)viewDidLoad {
//调用父类的加载视图函数
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIView* view = [[UIView alloc] init];
view.frame = CGRectMake(100, 100, 100, 200);
//将视图添加到当前控制视图上
[self.view addSubview:view];
view.backgroundColor = [UIColor orangeColor];
self.view.backgroundColor = [UIColor blueColor];
}
//当系统内存过低时,会发起警告信息,调用此函数
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
NSLog(@"内存过低!");
//以下步骤模拟内存过低情况:在XCode运行后,Simulator-->Debug-->Simulate Memory Warning,点击
}
@end
====================main.m脚本====================
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
//整个App程序的主函数,入口函数
int main(int argc, char * argv[]) {
//自动内存释放池
@autoreleasepool {
//UIKit框架结构的启动函数
//p1:argc,启动时带有参数的个数
//p2:argv,参数列表
//p3:要求传入一个主框架类对象,如果参数为nil,系统会自动用默认的框架类作为主框架类名
//p4:主框架的代理类对象
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
学习总结:
- 重点:UIViewController的基本概念
- 难点:UIKit框架代码概念
源码链接地址:https://pan.baidu.com/s/1yrOLXZZeu9MiOWtMq5-EGA 密码:7t1l
IOS开发之XCode学习008:UIViewController基础的更多相关文章
- IOS开发之XCode学习009:UIViewController使用
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 通过点击屏幕事件,调用ViewController ...
- IOS开发之XCode学习011:UISwitch控件
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UIswitch控件,添加UIswitc ...
- IOS开发之XCode学习007:UIWindow对象
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...
- IOS开发之XCode学习012:Slider和ProgressView
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UISlider和UIProgressV ...
- IOS开发之XCode学习010:定时器和视图对象
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.通过点击"启动定时器"按钮 ...
- IOS开发之XCode学习013:步进器和分栏控件
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UIStepper和UISegmente ...
- IOS开发之XCode学习014:警告对话框和等待提示器
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.警告对话框和等待提示器的概念 2.警告对话框 ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- iOS开发之Xcode常用调试(Debug)技巧总结
一.Xcode调试技巧之:NSLog 上面也提到了,在我们日常的开发过程中最常见的Debug方式就是打Log.而在OC语言中,打Log是采用NSLog方法.但是NSLog效率低下,具体原因可以看这篇博 ...
随机推荐
- 如何将top命令输出重定向为文件
命令: # top -b -n 2 -d 3 > /tmp/top.out 解析: -b: batch 模式,可以重定向到文件中 -n:一共取2次top数据 -d:每次top数据间隔为3秒
- RChain的Casper共识算法
RChain的Casper共识算法是基于Vlad Zamfir的correct-by-construction共识协议和CTO Greg Meredith和其他RChain成员讨论而来的.他们还为Ca ...
- Perf工具
前段时间Linux下用nmon监控程序的运行,发现CPU的使用率很高,系统态Sys的比例很高.程序的速度不是很快,怀疑和上面的原因有关. 分别使用perf record,perf report和top ...
- Linux中的Buffer 与 Cache
A buffer is something that has yet to be "written" to disk. A cache is something tha ...
- JS高级程序设计第3章读书笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- bzoj 4870: [Shoi2017]组合数问题 [矩阵乘法优化dp]
4870: [Shoi2017]组合数问题 题意:求 \[ \sum_{i=0}^{n-1} \binom{nk}{ik+r} \mod p \] \(n \le 10^9, 0\le r < ...
- 小甲鱼OD学习第2讲
这次我们的任务是让我们输入任意用户名密码判断正确 我们输入fishc和111111,显示错误 我们猜测这是用GetDlgItemTextW来收集账号密码的输入值 我们找到了两个函数,给这两个函数都下断 ...
- 【SSH框架】之Hibernate系列一
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是HibernateHibernate是一个开放源代 ...
- Windows Server 2016-部署额外域控制器
我们一般所提到的所谓域外控制器,是指除域内第一台域控制器之外的其他域控制器.额外域控制器很多时候也有辅助域控一称.那么在同一域内安装多台域控制器有什么优点呢: 1.提高用户登录效率.多台域控制器可以同 ...
- phpstorm及webstorm密钥
选用 server 方式,输入地址:http://idea.iteblog.com/key.php http://idea.lanyus.com/