UIKit框架(5)控制器的创建
在UIKit中,UIViewController及其子类描述视图控制器,即一个页面
本篇文章介绍一下控制器的三种主要创建方式
纯代码创建
即:alloc+init方式,如:
AMViewController*vc=[[AMViewControlleralloc]init];
从storyboard中加载
a.创建UIStoryboard对象
+(UIStoryboard*)storyboardWithName:(NSString*)namebundle:(NSBundle*)storyboardBundleOrNil
name参数:storyboard文件名,不包含扩展名
storyboardBundleOrNil参数:传nil即可
b. 从UIStoryboard对象中获取控制器对象
-(id)instantiateInitialViewController//取出唯一的初始控制器-(id)instantiateViewControllerWithIdentifier:(NSString*)identifier//按照ID
如:
UIStoryboard*stoyrboard=[UIStoryboardstoryboardWithName:@"main"bundle:nil];//AMViewController*vc=[stoyrboardinstantiateInitialViewController];AMViewController*vc=[stoyrboardinstantiateViewControllerWithIdentifier:@"redViewController"];
控制器的ID:在storyboard文件中可以设计多个控制器,每个控制器可以管理一个ID
从xib中加载
xib设计控制器的view,有以下两种方式:
方法一:
可以在xib中放置控制器,如:
代码中仍然使用NSBundle的loadNibNamed:从Nib中创建
设计的控制器,同样可以设置关联的子类类型
-(NSArray*)loadNibNamed:(NSString*)nameowner:(id)owneroptions:(NSDictionary*)options
name参数:传递xib文件的文件名(不带后缀名)
其余参数传nil使用默认值即可
返回值:为该xib文件中所有对象的数组,一般一个xib文件只设计一个对象
如:
AMViewController*vc=[[[NSBundlemainBundle]loadNibNamed:@"xxx"]lastObject];
方法二:
在xib中仍然放置一个view,选则xib中的File’s owner ,设置class为控制器子类
右键File’s owner,view属性连线到xib中的view对象
代码中使用UIViewController的一下init方法从xib中创建其view
-(instancetype)initWithNibName:(NSString*)nibNamebundle:(NSBundle*)nibBundle
nibName参数:xib文件名,不包括后缀名
nibBundle参数:传nil即可
如:
AMViewController*vc=[[AMViewControlleralloc]initWithNibName:@"view"bundle:nil];
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。