视图控制器的创建
废话不多说,直接上代码
ps:没有通过storyBoard创建视图控制器,而是在AppDelegate中来创建控制器
//程序的入口
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//创建windows
//1.创建window对象
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
//1.1通过代码创建视图控制器
let controller = ZQViewController()
//设置背景颜色(每个视图都有一个view属性,辅助视图控制器的显示)
controller.view.backgroundColor = UIColor.redColor()
//1.2通过storyBoard去创建视图控制器
//a.拿到storyBoard文件
//参数1:文件名
let story = UIStoryboard(name: "My", bundle: nil)
//拿到storyboard中箭头指向的视图控制器
let storyController = story.instantiateInitialViewController()
//1.3通过xib去创建视图
let xibController = ZQViewController(nibName: "My", bundle: nil)
//b 直接创建ViewController的时候,创建Xib 默认先会去找和控制器是否有重名的storyboard,有就加载其中有箭头指向的视图控制器
let xibController2 = FirstViewController()
//2.设置根控制器
/*
UIViewController是iOS中,所有的视图控制器的父类
a.!!!!!视图控制器本身是不能显示的,但是因为视图控制器都有一个View属性,所以导致视图控制器可见.视图控制器中View的大小,默认和屏幕大小是一样的
b.正常情况下,不会直接使用UIViewController类型,而是继承UIViewController写一个自己的视图控制器类
c.一个应用程序中,一个界面就对应一个视图控制器
*/
self.window?.rootViewController = xibController2
//显示window
//在配置中,没有取消MainInterface的选项 可以不设置一下代码
window?.makeKeyAndVisible()
return true
}
视图控制器的声明周期
/*
说明:
1.视图控制器的生命周期值得是视图控制器中的View的属性生命(生 -> 死)
2.视图控制器所有生命周期相关方法重写的时候,必须通过super去调用父类当前的生命周期方法
3.生命周期的方法都是自动调用的
*/
//MRAK:: - 生命周期
//在视图控制器创建view属性的调用这个方法
override func loadView() {
super.loadView()
print("loadView -- view属性诞生")
}
//在视图控制器view属性加载完成后调用(将加载好的UIView对象赋给视图控制器对象,作为视图控制器的View属性)->在这个方法中去创建界面
//每次创建视图控制器的时候的时候,会调用一次
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad -- view加载完成")
}
//viewWillAppear 在View将要出现在界面的时候调用(可能会被调用多次)
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
print("viewWillAppear -- view将要出现")
}
//viewDidAppear 在View已经出现在界面的时候调用(可能会被调用多次)
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
print("viewDidAppear -- view显示在界面上")
}
//view将要消失的时候调用(可能会被调用多次)
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
print("viewWillDisappear -- view即将消失")
}
//view已经消失的时候调用(可能会被调用多次)
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
print("viewDidDisappear -- view已经消失")
}
//接受到内存警告的时候会被调用
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//类死亡时调用
deinit{
print("类死亡时调用")
}