iOS基础-UIKit框架-多控制器管理-控制器创建和控制器view的创建

掌握

一、控制器的多种创建方式
如何创建一个控制器

通过storyboard创建

注意:加载UIStoryboard仅仅是加载名称叫做Test的storyboard,并不会创建

storyboard中的控制器以及控件

通过xib创建
注意:要想让xib里的view设置为所创建控制器的view,必须设置xib的File‘s owner

为所创建控制器。并且File‘s owner点右键将view连到xib里的view上。
storyboard默认已经完成了上述操作

二、控制器view的创建方式
1.没有同名xib情况下创建
2.通过storyboard创建
3.有指定xib情况下创建
4. 有同名xib情况下创建
5.有同名去掉controll的情况下创建
6.重写控制器的loadView方法

//第一种方式:没有xib和storyboard情况下创建
//(通过alloc init创建控制器,会自动创建一个空白的view作为控制器的view)

//第二种方式:通过storyboard创建
//如果通过storyboard创建,会根据storyboard中箭头指向的控制器view所描述的

样子创建控制器的view

//第三种方式:有指定xib的情况下创建(调用initWithNib:方法创建控制器)
//如果通过xib创建,会根据xib中控制器view所描述的样子创建控制器的view

//第四种方式:有与控制器同名xib的情况下创建(直接调用init方法创建控制器)
//如果有同名xib,会自动找到同名xib中描述的view作为控制器的view

//第五种方式:有与控制器同名(但不含controller)xib的情况下创建(直接调用

init方法创建控制器)
//如果有与控制器同名(但不含controller)的xib,会自动找到该xib的view作为控

制器的view

//第六种方式:重写控制器的loadView方法(该方法一般用于自定义控制器view)
//什么时候调用LoadView就代表什么时候加载控制器的view
//如果重写了控制器的loadView方法,就不会去加载创建同名去掉controller的xib

和同名的xib了,而是创建一个空白的view(什么都不写的话)作为控制器的view,

也可以在loadView中直接创建view

三、控制器view的延迟加载(懒加载)
*控制器的view是延迟加载的:用到时再加载
*可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
*控制器的view加载完毕就会调用viewDidLoad

时间: 2024-10-13 00:25:42

iOS基础-UIKit框架-多控制器管理-控制器创建和控制器view的创建的相关文章

iOS基础-UIKit框架-多控制器管理-UINavigationController

一.导航控制器基本使用多控制器 导航控制器 导航控制器的简单使用1.创建一个空项目2.创建导航控制器nav3.设置导航控制器为Window的根控制器4.新建3个控制器类管理这3个View(勾上also create xib)在xib中添加一个标签用来注明是第几个控制器,添加一个按钮用来跳转到下一个控制器5.创建第一个控制器并添加到导航控制器中[nav pushViewController:one animated:YES]:6.监听用来跳转到第二个的按钮并实现方法-(IBAction)jump2

iOS基础-UIKit框架-多控制器管理-UITabBarController

UITabBarController UITabBarController的简单使用 一.UITabBarController的创建(利用代码)1.新建一个空项目,在MJAppDelegate.m的didFinishLaunch...方法中//1.创建tabbar控制器UITabBarController *tabbarVc = [[UITabBarController alloc] init]: //2.设置为window的根控制器self.window.rootViewController

iOS基础-UIKit框架-高级视图-UIPickerView-实例3:国家选择(图片)

说明:事先已经准备好了一个NJCountry类,里面声明了2个属性name和icon,并 创建和实现了快速创建类的动态方法和静态方法.直接导入即可.0.创建一个plist文件,Root为Array,里面为字典(字典里为国家和国旗)1.加载这个plist文件1>声明数组属性 @property(nonatomic,strong)NSArray *countries:2>懒加载(在实现文件最后面)#pragma mark - 懒加载-(NSArray *)countries{if(_countri

iOS基础-UIKit框架-高级视图-UIPickerView-实例2:城市选择(列与列之间有关系)

说明:事先已经准备好了一个NJProvince类,里面声明了2个属性name和cities,并创建和实现了快速创建类的动态方法和静态方法.直接导入即可.0.创建一个plist文件,Root为Array,里面为字典(字典里为省份和城市)1.加载这个plist文件1>声明数组属性 @property(nonatomic,strong)NSArray *provinces:2>懒加载(在实现文件最后面)#pragma mark - 懒加载-(NSArray *)provinces{ if(_prov

iOS基础-UIKit框架-多控制器管理-Segue

一.什么是Segue? 二.Segue的属性 三.Segue的类型 四.自动型Segue(控件->控制器) 五.手动型Segue(控制器->控制器) 六.performSegueWithIdentifier:sender:

iOS基础-UIKit框架-多控制器管理-Modal

Modal Modal效果 一.Modal演示(代码)1.事前准备1>新建一个空项目,删除默认控制器文件2>自定义2个控制器,将ViewController的Class分别设置为这个类3>创建一个window,将其根控制器设置为第一个自定义的控制器.2.拖一个按钮,监听这个按钮并实现方法(用来跳转到第二个界面)-(IBAction)jump{ //展示第二个控制器界面 MJTwoController *two = [[MJTwoViewController alloc] init]: [

iOS基础-UIKit框架-高级视图-UIPickerView-实例1:点菜(列与列之间无关系)

一.点菜0.创建一个plist文件,Root为Array,里面包含3个数组,每个数组有一堆食物名称加载这个plist文件1>声明数组属性 @property(nonatomic,strong)NSArray *foods:2>懒加载(在实现文件最后面)#pragma mark - 懒加载-(NSArray *)foods{ if(_foods == nil){ NSString *fullPath = [[NSBundle mainBundle] pathForResource:@"

iOS基础-UIKit框架-基础视图-UIScrollView

一.什么是UIScrollView? 二.UIScrollView的基本使用

[iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储

A.需求 1.搭建一个“私人通讯录”Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改) B.基本架构 1. 5个控制器 (1)导航控制器 NavigationController (2)登陆 UIViewController 输入账号密码 记住密码.自动登录开关 登陆跳转按钮 (3)联系人列表 TableViewController 注销功能 添加联系人跳转按钮 (4)添加联系人 UIView (5)查看.编辑 UI