此文学习来源为: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基础的更多相关文章

  1. IOS开发之XCode学习009:UIViewController使用

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 通过点击屏幕事件,调用ViewController ...

  2. IOS开发之XCode学习011:UISwitch控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIswitch控件,添加UIswitc ...

  3. IOS开发之XCode学习007:UIWindow对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...

  4. IOS开发之XCode学习012:Slider和ProgressView

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UISlider和UIProgressV ...

  5. IOS开发之XCode学习010:定时器和视图对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.通过点击"启动定时器"按钮 ...

  6. IOS开发之XCode学习013:步进器和分栏控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIStepper和UISegmente ...

  7. IOS开发之XCode学习014:警告对话框和等待提示器

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.警告对话框和等待提示器的概念 2.警告对话框 ...

  8. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...

  9. iOS开发之Xcode常用调试(Debug)技巧总结

    一.Xcode调试技巧之:NSLog 上面也提到了,在我们日常的开发过程中最常见的Debug方式就是打Log.而在OC语言中,打Log是采用NSLog方法.但是NSLog效率低下,具体原因可以看这篇博 ...

随机推荐

  1. Android端生成META-INF信息文件的Gradle插件 RapidMetaInfPlugin

    来源博客:Wang Jie's Blog 本文链接:<http://blog.wangjiegulu.com/2018/02/05/Android端生成META-INF信息文件的Gradle插件 ...

  2. 自动化测试(二) 单元测试junit的Test注解突然不能使用原因以及解决方案

    做为一名刚接触自动化测试的人,才知道单元测试原来也挺有讲究的. 我塞,Test注解报错,没有道理啊~之前好好的,怎么会出现这样~ 原因如下,本人新建了个Test类,报错重名, 难怪提示Test不是注解 ...

  3. 解决xshell评估期已过的问题

    问题:时间长没有打开xshell,今天突然打开提示评估期已过,如下图所示: 点击采购会弹出购买的界面,(对于我们这些程序屌怎么会花899购买一款软件)点击取消就会退出. 解决方法: 卸载这个要收费的版 ...

  4. python3图像识别库安装与使用

    pytesseract库的安装 因为用的win10,就直说windows上面的安装了.其实就是pip安装就完事了. $ pip install pytesseract 安装了这个还不算完,得安装Tes ...

  5. Python中的浅拷贝与深拷贝

    编者注:本文主要参考了<Python核心编程(第二版)> 以下都是参考资料后,我自己的理解,如有错误希望大家不吝赐教. 大家有没有遇到这样一种情况,对象赋值后,对其中一个变量进行修改,另外 ...

  6. JavaScript中涉及得运算符以及运算符的优先级

    在js中主要有三种运算符:算术运算符,逻辑与比较运算符,位运算符.在着三种运算符中,最常见的应该是算术与比较运算符,位运算符比较少见一些 *说到了运算符,就不得不说运算符的优先级.下面我来列一下这些运 ...

  7. 10位时间戳转为C#格式时间

    /// <summary> /// 10位时间戳转为C#格式时间 /// </summary> /// <param name=”timeStamp”></p ...

  8. 编译预处理命令define

    #include 包含指令 将一个源文件嵌入到当前源文件中该点处. #include<文件名>  按标准方式搜索,文件位于C++系统目录的include子目录下 #include" ...

  9. ionic2 +Angular 使用自定义图标

    结合阿里巴巴矢量图标库实现在ionic2开发中使用自定义图标. step1:在阿里巴巴图标管理中新建项目,并添加自己选中的图标到购物车: step2:将购物车中的图标"添加至项目" ...

  10. python爬虫循环导入MySql数据库

    1.开发环境 操作系统:win10    Python 版本:Python 3.5.2   MySQL:5.5.53 2.用到的模块 没有的话使用pip进行安装:pip install xxx     ...