温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-11 23:24:24 来源:网络 阅读:343 作者:ymanmeng123 栏目:移动开发

在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];











向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI