1.控制器常见的创建方式有以下几种
1>通过storyboard创建
2>直接创建
HXViewController *hx = [[HXViewController alloc] init];
3>指定xib文件来创建
HXViewController *hx = [[HXViewController alloc] initWithNibName:@"HXViewController" bundle:nil];
通过storyboard创建
· 当新建项目的时候,大家都知道项目会自带一个Main.storyboard文件,这个文件中会有一个控制器。项目运行的时候,程序会直接加载这个storyboard中的控制器,并显示控制器view。(Main.storyboard是程序的最主要的storyboard入口,可在Info.plist文件中查看)
· 大家也可以在项目中自己创建一个storyboard文件(如:My. storyboard),向该文件中拖入一个控制器。我们就可以手动加载这个控制器。
其步骤:
1>先加载storyboard文件(My是storyboard的文件名)
UIStoryboard*storyboard = [UIStoryboard storyboardWithName:@"My" bundle:nil];
2>接着初始化storyboard中的控制器。初始化“初始控制器”(instantiateInitialViewController就代表箭头所指的控制器)
UIViewController *vc = [storyboardinstantiateInitialViewController];
2’>通过一个标识初始化对应的控制器
UIViewController *vc =[storyboard instantiateViewControllerWithIdentifier:@”mj"];
注意:如果你在项目创建了一个控制器(如:MyViewController),并想通过storyboard加载该控制器,你需要将storyboard文件中的控制器改为MyViewController。这样加载得到的控制器就是MyViewController。
通过storyboard创建具体实现:
a. 创建storyboard文件:New file… -> User Interface -> storyboard,命名为:My
b. 向storyboard文件中拖入一个控制器
c. 在项目中创建一个HXViewController
d. 将storyboard文件中的控制器改为HXViewController
e. 加载控制器,并显示(这里我显示到window上)
// 加载storyboard文件
UIStoryboard *story = [UIStoryboardstoryboardWithName:@"My" bundle:nil];
// 初始化storyboard中的控制器(instantiateInitialViewController就代表箭头所指的控制器)
HXViewController *hx = [storyinstantiateInitialViewController];
// 显示控制器view
self.window.rootViewController= hx;
2> 直接创建:(没什么好说的)
UIViewController*vc = [[UIViewController alloc] init];
搞定!!!
3> 指定xib文件来创建:(xib的名称跟控制器名称相同)
跟加载storyboard非常相似,不过向xib文件拖入的是UIView,并改变File’s Owner的Class为指定的控制器(HXViewController)。再将控制器的view指定为xib文件中的UIView。
使用代码:
HXViewController*hx=[[HXViewControlleralloc]initWithNibName:@"HXViewController" bundle:nil];