十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在UIKit中,UIViewController及其子类描述视图控制器,即一个页面
创新互联公司主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、成都响应式网站建设公司、程序开发、网站优化、微网站、微信小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都做网站、网站建设、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。本篇文章介绍一下控制器的三种主要创建方式
纯代码创建
即: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
从xib中加载
xib设计控制器的view,有以下两种方式:
方法一:
可以在xib中放置控制器,如:
代码中仍然使用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为控制器子类
右键File’s owner,view属性连线到xib中的view对象
代码中使用UIViewController的一下init方法从xib中创建其view
- (instancetype)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
nibName参数:xib文件名,不包括后缀名
nibBundle参数:传nil即可
如:
AMViewController * vc = [[AMViewController alloc] initWithNibName:@"view" bundle:nil];
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。