美文网首页iOS Developer
iOS控制器的多种创建方式

iOS控制器的多种创建方式

作者: 戴上耳机__世界与我无关 | 来源:发表于2016-11-20 20:56 被阅读0次

方式一

  • 通过alloc init

1.创建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
2.创建控制器
XHViewController * vc = [[XHViewController alloc] init];
vc.view.backgroundColor = [UIColor whiteColor];
3.设置窗口跟控制器
self.window.rootViewController = vc;
4.设置窗口为应用程序主窗口
[self.window makeKeyAndVisible];

#####为了省事我把设置窗口的重复代码去掉了,都能看得懂


#####方式二
- 通过StoryBoard

通过Storyboard这个对象,就能加载storyboard文件注意:必须要有storyboard,创建UIStoryboard对象才有意义,alloc init创建UIStoryboard对象没有意义

1. instantiateInitialViewController:默认加载箭头指向的控制器

UIStoryboard * sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
XHViewController * vc = [sb instantiateInitialViewController];

2. instantiateViewControllerWithIdentifier:根据标识在storyboard查找控制器,标识和storyboard中必须一致

UIStoryboard * sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
XHViewController * vc = [sb instantiateViewControllerWithIdentifier:@"mainVC"];

- 现在创建的控制器都不能处理事件,如果需要处理事件,需要自定义控制器。
原因:当通过Storyboard ID找到storyboard中的控制器的时候,就会创建storyboard中描述的控制器对象,创建对象首先得知道类名,会根据storyboard中的Custom Class确定类名,然后创建对象,默认都是系统自带的对控制器对象,系统自带的是不能处理事件的,他不能写监听方法。需要我们手动去关联.


#####方式三

- 通过xib
   1.加载指定名字的xib

XHViewController * vc = [[XHViewController alloc] initWithNibName:@"XHVC" bundle:nil];


  2.加载和控制器名字相同的xib  优先级高于下面名字不带controller的.
-  [[XHViewController alloc] init] 系统会帮我们加载和控制器同名的XIB

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


 3 . 加载和控制器名字相同,不带Controller 后缀 的xib

XHViewController * vc = [[XHViewController alloc] initWithNibName:@"XHView" bundle:nil];

#####注意
- 通过xib加载控制器,xib中添加的控件是view而不能是viewController.

- xib注意点: 1. xib里面必须有一个view描述控制器的view,因为控制器的view属性必须有值。2.  xib需要指定描述哪一个控制器,描述UIView不需要,因为xib里面可以描述很多UIView,不能固定死,但是控制器就不一样了,一个xib就用来描述一个控制器。3.xib里面可能有很多view,需要拖线指明哪个是控制器的view
- xib和storyboard的区别storyboard已经指定了控制器的view,不需要我们管,xib需要我们手动管理。

我们需要在xib中关联  如图

![XIB.png](https://img.haomeiwen.com/i3454340/7493869edf8c2bcb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • iOS控制器的多种创建方式

    方式一 通过alloc init 1.创建窗口self.window = [[UIWindow alloc] in...

  • UI控件进阶2——多控制器管理

    控制器及View的多种创建方式 创建控制器的3种方式?直接通过alloc + init的方式创建。创建一个“Sin...

  • iOS 加载视图控制器的三种方式

    加载iOS控制器,有很多种方式,比如直接创建类,或者通过XIB,亦或者通过Storyboard ,下面分别介绍 一...

  • 多控制器-2

    笔记 Xmind PPT 1-控制器管理 控制器以及view的多种创建方式 UINavigationControl...

  • 控制器的多种创建方式

    直接创建 XViewController *vc = [[XViewController alloc] init]...

  • iOS常用面试题

    200道常用的iOS题目 29、创建控制器、视图的方式 1、使用代码直接创建 ...

  • 视图控制器

    视图控制器创建的多种方式 什么是视图控制器 视图控制器就是用来 ”控制“ 或者说 ”管理“ 界面(视图)的"换句话...

  • iOS 获取当前控制器的正确方式

    iOS 获取当前控制器的正确方式 iOS 获取当前控制器的正确方式

  • 三种创建控制器的方法

    一、纯代码的方式创建控制器 这种方式是最简单的创建控制器的方法,直接通过控制器类名 + alloc + init创...

  • 控制器管理

    首先要知道控制器创建的方式 通过storyboard创建 直接创建 XIB创建 注意:通过xib加载控制器 如果传...

网友评论

    本文标题:iOS控制器的多种创建方式

    本文链接:https://www.haomeiwen.com/subject/gefypttx.html