首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序启动的完整过程

,一个app中至少有一个UIWindow iOS启动完毕创建的第一个视图就是UIWindow 接着创建控制器,再把控制器的View加到UIWindow上显示出来 在- didFinishLaunchingWithOptions...] initWithFrame:[UIScreen mainScreen].bounds]; // 2.加载storyboard文件,创建控制器 // name:就是storyboard...; // 2.设置窗口的根控制器 // 通过xib加载控制器 // .首先创建一个Xib文件 // .Xib文件需要拖一个View描述控制器的View...xib文件的顺序 若加载xib文件传入name参数,则按参数描述的加载 若未传入参数 先加载控制器名字的View.xib控制器命名为YLViewController,则首先加载YLView.xib...而后加载与控制名字一样的xib控制器命名为YLViewController,则首先加载YLViewContrller.xib 若都找不到则加载空。

1.5K150
您找到你想要的搜索结果了吗?
是的
没有找到

iOS-关于加载xib

是重量级的,用来描述整个软件的多个界面,并且能够展示多个界面的跳转关系 加载xib xib文件在编译的后会变成nib文件 xib文件.png 第一种加载方式 NSArray * xibArray = [...xib 首先需要对xib文件进行一些处理,打开xib文件 点击"File‘s Owner",设置Class为xxxViewControler 右键"Files‘s Owner", 里面有个默认的IBOutlet...[CustomViewController alloc]initWithNibName:nil bundle:nil]; 第一步:寻找有没有和控制器类名同名的xib,如果有就去加载(XXViewController.xib...) 控制器类名同名的xib 第二步:寻找有没有和控制器类名同名但是不带Controller的xib,如果有就去加载(XXView.xib) 和控制器类名同名但是不带Controller的xib...文件里有三个View) 通过加载xib方法初始化自定义控件log打印 代码实验结论: 通过代码初始化自定义控件是不会自动加载xib的,它会执行initWithFrame和init 通过加载xib

15710

两种通过Plist加载图片的方法及问题,九宫格的算法,字典转模型1. 序列帧动画实现2. 图片浏览器-两种加载plist的方式3. 图片浏览器-内存问题4 MVC简单介绍和类前缀5 应用管理-两种加载

用路径方式去加载图片时图片不能放在Assets中,因为放在Assets文件中的图片编译后会被打包成.car文件 [UIImage imageWithContentsOfFile:<#(nonnull NSString...文件夹下,获取图片文件,使用 imageWithContentsOfFile 加载,使用完成立即释放!...4 MVC简单介绍和类前缀 模型 : 数据 视图 : 负责显示 控制器 : 处理逻辑,如跳转界面 类前缀苹果推荐使用三个或三个以上字母,防止重名 5 应用管理-两种加载xib的方式 从 NSBundle...加载XIB,只需要在第一个参数传入 XIB文件名,注意:没有扩展名 方法1,iOS 3.0 的方法 UIView *appView = [[NSBundle mainBundle] loadNibNamed...(appX, appY, appW, appH); //把appView添加到控制器的view上 [self.view addSubview:xib]; } 8 字典转模型

81030

【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

Owner 文件 : 代表加载界面设计文件对象, 即 布局文件对象, 谁负责加载 Main.xib 界面设计文件, 谁就是该 界面设计文件的 File's Owner; -- First Responder..., 系统创建控制器时, 通常会加载对应的 xib 文件; -- 应用初始界面 : 在 OCAppDelegate 中定义了 FKViewController 变量, 该变量类型对应的 xib 文件就是初始界面...UIViewController 控制器 UIController 方法详解 : 主要用于处理视图加载, 显示等事件; -- viewDidLoad 方法 : 视图装载完成, 自动回调该方法, 重写时注意先使用..., 箭头指向需要加载视图控制器; -- 移动箭头 : 视图中只有一个 UI 控制器, 移动箭头始终指向唯一的 一个 UI 控制器; -- 好处 : 可以直观地看到多个视图之间的协作关系, 可以在 Interface...Builder 中配置视图之间的切换关系; -- 图示 :  (3) 工具图标 界面设计文件的 工具图标 :  -- 缩小 : 多个视图控制器在同一个窗口, 缩小界面可以同时查看所有的 视图控制器;

4.8K30

UIViewController生命周期

一、视图控制器 UIViewController采用懒加载的方式,也就是说第一次访问到view属性时才会加载或创建它。...由于视图视图控制器管理,所以讨论视图加载方式时,主要讨论视图控制器加载方式。 通过Storyboard加载:这是苹果推荐的方式。...: Nib文件其实就是xib文件,Storyboard相当于是聚合了多个nib文件,并且添加了对不同的UIViewController之间的segue和relationship的管理。...通过加载xib文件来创建UIViewController的view 如果没有找到相关联的xib文件,就会创建一个空白的UIView,然后赋值给UIViewController的view属性 默认不用实现...我们可以重写这个方法,对通过nib文件加载的view做一些其他的初始化工作。比如可以移除一些视图,修改约束,加载数据等。

1.8K10

iOS的MVC框架之控制层的构建(下)

有很多同学不喜欢系统提供的Storyboard和XIB来构建视图,而是喜欢通过代码的形式来完成视图界面布局,并且通常这部分代码都集中在loadView或者viewDidLoad或者通过懒加载的形式分散在各处...很多人都喜欢在viewDidLoad里面进行视图的构建,其实不是最佳的解决方案,因为根据字面意思viewDidLoad里面添加的应该是视图构建并加载完成的一些处理逻辑。...采用这种方式来构建你的视图在一定程度上不会对你的控制器中的代码产生污染以及导致你控制器中的代码的膨胀。通过SB和XIB的使用就可以简化我们对视图部分的构建。...我们知道在iOS的loadView的默认实现逻辑是首先会到SB或者XIB中去根据视图控制器的类型去搜索是否有匹配的视图布局文件,如果有则将这个视图布局文件进行解析并构建对应的视图层次树并设置视图控制器中的那些插座变量...} }]; } } @end 上面的代码可以看出控制器除了保存一些状态外,并且根据不同的状态还做了不同的网络服务请求、文件的读写、状态的更新视图的刷新操作等等其他逻辑

4.4K30

iOS面试题-UI篇

loadView用来自定义view,只要实现了这个方法,其他通过xib或storyboard创建的view都不会被加载 看懂控制器view创建的这个图就行 [image] IBOutlet连出来的视图属性为什么可以被设置成...Application:存放程序源文件,上架前经过数字签名,上架不可修改 Documents:常用目录,iCloud备份目录,存放数据 Library Caches:存放体积大又不需要备份的数据 Preference...两者都是在多个试图控制器间跳转的函数 presentViewController提供的是一个模态视图控制器(modal) pushViewController提供一个栈控制器数组,push/pop 请简述...提供了一个分类UIImageView+WebCache.h, 这个分类中有一个最常用的接口sd_setImageWithURL:placeholderImage:,会在真实图片出现前会先显示占位图片,当真实图片被加载出来在替换占位图片...来继续在磁盘中查询对应的数据, 如果找到了, 就会把磁盘中的数据加载到内存中,并将图片显示出来 如果在内存和磁盘缓存中都没有找到,就会向远程服务器发送请求,开始下载图片 下载的图片会加入缓存中,并写入磁盘中

1.9K21

iOS-控制器View的创建和生命周期

首先判断下有没有指定storyboard或者xib,如果指定,就会加载它们描述的控制器的view,如果没有指定,创建一个空的view。...viewDidLoad 作用:一般我们会在这里做界面上的初始化操作,比如往view中添加一些子视图等。 什么时候调用:每当view创建完毕的时候,最终都会调用viewDidLoad方法。...通过storyboard创建的控制器,或者通过xib创建的控制器的view,系统会帮我们加载控制器的view,具体内部实现可以看iOS-UIWindow详解,在此不在赘述 ViewController...(1).判断下有没有指定nibName,如果指定了,就会去加载指定的xib (2).如果没有指定,就会判断下有没有跟控制器类名同名的xib,有,就会去加载 (3).判断下有没有跟控制器类名同名的xib...,但是后缀不带Controller的xib,如果有,就会去加载 (4).如果没有任何xib描述控制器的view,就不会加载xib

1.3K60

iOS中storyboard故事板使用Segue跳转界面、传值

,但后来又出了一种方式,就是storyboard故事板子,其实storyboard和xib文件很像,最大的不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard...对应多个,基本一个应用只需要一个storyboard就可以了,不再需要为每个控制器创建一个xib文件,从这点上来说,还是很方便的,在storyboard中查看各个界面的跳转也很方便,但之前一直使用xib...创建工程: 首先创建一个新的工程,这里我创建的是Single View Application,就可以自带故事板了,如下图: 创建好可以在左边文件列表中看到Main.stroyboard,这个就是故事板文件了...刚才说到选择modal,Segue有几种模式,在iPhone上可以用到的有modal、push和custom,其他还有几种是iPad上用的,这里简单说明一下: modal:模态地加载视图控制器,最常用的方式...(weak, nonatomic) NSString *string; 然后在Page2的.m文件中设定加载界面时,刷新输入框内的值为变量的值: - (void)viewDidLoad {

1.4K20

iOS基础问答面试题连载(二)-附答案

UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindow iOS程序启动完毕,创建的第一个视图控件就是UIWindow,接着创建控制器的view, 最后将控制器的view...加载指定标识的控制器. 9.initWithNibName的加载过程? 如果没有指定名称.指定为nil,那么它就会去先加载跟它相同名称的Xib....如果没有跟它相同名称的Xib,那么它就会再去加载跟它相同名称去点Controller的名字的Xib....如果不是从StoryBoard当中加载的, 那么它还会判断是不是从Xib当中创建的控制器.如果是,那么它就会从xib加载控制器的View....如果也不是从Xib加载控制器.那么它就会创建一个空的UIView.设为当前控制器的View. 注意点: 一旦重写了loadView,表示需要自己创建控制器的View.

1.3K90

iOS-UIWindow详解

iOS程序启动完毕,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。...info.plist,判断是否指定mian(xib 或者 storyboard)如果指定就去加载 当我们把指定的Main Interface 中mian给删除的时候,重新运行程序,就会发现我们之前设置的...系统在加载storyboard的时候会做以下三件事情 创建窗口 加载mian.storyboard 并实例化view controller 分配新视图控制器到窗口root viewcontroller...3.通过storyboard加载控制器 刚才我们提到过系统在加载storyboard的时候会做以下三件事情 创建窗口 加载mian.storyboard 并实例化view controller 分配新视图控制器到窗口...]; return YES; } 3.通过xib加载控制器 通过xib加载控制器和通过storyboard加载控制器类似,直接上代码 - (BOOL)application:(UIApplication

1.9K40

Swift 项目 - Xib | StoryBoard 多人协作技巧

StoryBoard 和 Xib 都是用来分离UI样式代码,改善视图代码重用率,增加所见即所得,降低视图测试繁复度的视图系列化工具, 其中Xib视图View为主, StoryBoard 以控制器Controller...与其说StoryBoard 和 Xib 隐藏了UI细节,倒不如说苹果是希望通过他们来引导开发者正确的使用 视图控制器 ,他们创建视图实例的时候都是通过 required init?...一个占位的容器视图指向子控制器的Embed Segue 按住Control键连线到想要包含的子控制器,占位视图的实例==子控制器的view(子控制器视图) 选择Embed连线方式,子控制器 的尺寸变化成跟占位视图一样的尺寸.... // Objective C 通过上面的错误提示Interface Builder file就是指通过Storyboard或者Xib构建视图或者控制器,但找不到名为HomeController的控制器...这时可以全局搜素一下 在搜出来的结果中可以看到,是在Main.storyboard上绑定了HomeController,Test.swift文件中定义了该类,但是因为改名所以无法找到。

1.9K20

浅谈MVC

MVC,也就是把系统设计分三层:数据模型、显示视图、逻辑控制器。...,但是在实际开发中,还是发现有不少问题需要注意,例如最近遇到的一个问题就是:有一个较复杂界面,需要根据上半部分子视图中日期的变化,动态更新中部表视图数据,界面支持日期一栏左右滑动,以切换日期,日期切换需要同步更新视图数据...在DateView中发起GetDateTime服务请求并获取到数据,需要将日期数据传递给TableView以发起获取表业务数据并加载到页面的操作,但因为这两个View是兄弟关系,而非父子关系,所以数据的传递只能采用发通知或者写委托的方式来处理...但是,若每个子View都使用各自xib文件进行设计,那事件的连接线似乎无从接起,因为貌似无法跨xib文件进行连接。...另一个法子,也是目前我在项目中使用的法子,即是只用一个xib文件进行设计,每个子View的界面设计工作都放到ViewController对应的xib文件中来设计,这样界面事件就能轻松跟ViewController

91820

iOS 关于Interface Building 的一些小技巧

Fill Spacing:该属性会保持子视图的宽高,所有子视图中间的间隔保持一致。 Fill Center: 该属性是控制所有子视图的中心之间的距离保持一致。...中怎么复用Xib文件 上个例子中制作了一个Xib view,但是在项目中往往想更直接在StoryBoard中复用Xib view。...下面介绍下如何在Sb中复用XIb 文件: 接上文例子,我们想在Sb中加上Xib view需要如下步骤, step 1:绑定Xib 文件的 File's owner 的Class ?...基本属性: 属性 作用 identifier 字符串标识,区分页面不同Segue source 跳转之前的控制器 destination 需要跳转到的控制器 传值: 有时候我们需要判断是否满足跳转的条件...# Cocoapods 制作第三方库,上传Xib文件 Cocoapods库制作的时候,Xib文件需要写到资源里,需要注意一下。

1.7K31

Intellij如何设置编译自动重新加载class文件

前段时间突然发现Intellij不能自动重新加载类了,每次编译都要重新启动项目,才能显示更新效果,后来网上查询Intellij下如何配置热部署,都说是要配置构件,然后在web容器的编辑页面选择...update resources and classes什么的,尝试发现每次类是重新加载了,但是项目会自动重启一下,没解决我的问题。...Intellij的项目配置界面捣鼓,终于找到了方法,就是在Debugger配置节点下的HotSwap节点中找到 Reload classes after compilation选项,选择Ask即可,这样每次编译,...就会提示你是否要重新加载classes,选择"是"就会自动reload classes,大部分情况下,修改类文件,就不需要重启了。

2.3K30
领券