资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

UIKit框架(5)控制器的创建

在UIKit中,UIViewController及其子类描述视图控制器,即一个页面

成都创新互联公司专注于巨野网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供巨野营销型网站建设,巨野网站制作、巨野网页设计、巨野网站官网定制、小程序设计服务,打造巨野网络公司原创品牌,更为您提供巨野网站排名全网营销落地服务。

本篇文章介绍一下控制器的三种主要创建方式

  • 纯代码创建

即:alloc+init方式,如:

AMViewController * vc = [[AMViewController alloc] init];

  • 从storyboard中加载

 a. 创建UIStoryboard对象

+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle*)storyboardBundleOrNil

    name参数:storyboard文件名,不包含扩展名

    storyboardBundleOrNil参数:传nil即可

b. 从UIStoryboard对象中获取控制器对象

- (id)instantiateInitialViewController  //取出唯一的初始控制器
- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier //按照ID

如:

UIStoryboard * stoyrboard = [UIStoryboard storyboardWithName:@"main" bundle:nil];
//AMViewController *vc = [stoyrboard instantiateInitialViewController];
AMViewController *vc = [stoyrboard instantiateViewControllerWithIdentifier:@"redViewController"];

控制器的ID:在storyboard文件中可以设计多个控制器,每个控制器可以管理一个ID

    UIKit框架(5)控制器的创建

  • 从xib中加载

xib设计控制器的view,有以下两种方式:

方法一:

     可以在xib中放置控制器,如:

     UIKit框架(5)控制器的创建

     代码中仍然使用NSBundle的loadNibNamed:从Nib中创建

     设计的控制器,同样可以设置关联的子类类型

- (NSArray *)loadNibNamed:(NSString *)name owner:(id)owner options:(NSDictionary *)options

    name参数:传递xib文件的文件名(不带后缀名)

    其余参数传nil使用默认值即可

    返回值:为该xib文件中所有对象的数组,一般一个xib文件只设计一个对象

如:

AMViewController * vc = [[[NSBundle mainBundle] loadNibNamed:@"xxx"] lastObject];

方法二:

     在xib中仍然放置一个view,选则xib中的File’s owner ,设置class为控制器子类

     UIKit框架(5)控制器的创建      UIKit框架(5)控制器的创建

     右键File’s owner,view属性连线到xib中的view对象

     UIKit框架(5)控制器的创建

     代码中使用UIViewController的一下init方法从xib中创建其view

- (instancetype)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

     nibName参数:xib文件名,不包括后缀名

     nibBundle参数:传nil即可

如:

AMViewController * vc = [[AMViewController alloc] initWithNibName:@"view" bundle:nil];


分享名称:UIKit框架(5)控制器的创建
文章位置:http://cdkjz.cn/article/jepedo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220