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

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

控制器View的创建 首先我们来看一下控制器view创建的流程图 控制器view加载.jpeg 从图中我们可以看出,在控制器view加载过程中有两个重要的方法loadView和viewDidLoad。...通过storyboard创建的控制器,或者通过xib创建的控制器的view,系统会帮我们加载控制器的view,具体内部实现可以看iOS-UIWindow详解,在此不在赘述 ViewController...(1).判断下有没有指定nibName,如果指定了,就会去加载指定的xib (2).如果没有指定,就会判断下有没有跟控制器类名同名的xib,有,就会去加载 (3).判断下有没有跟控制器类名同名的xib...,但是后缀不带Controller的xib,如果有,就会去加载 (4).如果没有任何xib描述控制器的view,就不会加载xib。...import "ViewController.h" @interface ViewController () @end @implementation ViewController // 自定义控制器的

1.4K60

请求数据包从发送到接收,都经历什么?

之前讲了「从输入 URL 再到浏览器成功看到界面」中的域名是如何变成 IP 地址的,了解了 DNS 相关的东西。这篇文章就聊聊发生在 DNS 解析之后的操作——建立连接。也就是我们常说的三次握手。...网卡自不必说,用来和其他的计算机进行通讯的硬件,我们常说的 MAC(Medium Access Control) 地址,其实就是网卡的编号,从其被生产出来的那一刻就被确定的一个唯一编号。...那数据在协议栈中到底经历了什么?才变成了一个一个的数据包?...而我们需要知道数据包是由以下部分组成的: 各种头部信息 真实数据 而从 MTU 中减去各种头部数据的大小,剩下的就是 MSS 了,也就是实际的数据。...例如我发这篇文章时所发请求的数据长度就可能超过 MSS 。 此时就需要对数据进行拆分,按照 MSS 的长度为单位进行拆分,将拆出来的数据分别装进不同的数据包中。

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

    请求数据包从发送到接收,都经历什么?

    之前讲了「从输入 URL 再到浏览器成功看到界面」中的域名是如何变成 IP 地址的,了解了 DNS 相关的东西。这篇文章就聊聊发生在 DNS 解析之后的操作——建立连接。也就是我们常说的三次握手。...网卡自不必说,用来和其他的计算机进行通讯的硬件,我们常说的 MAC(Medium Access Control) 地址,其实就是网卡的编号,从其被生产出来的那一刻就被确定的一个唯一编号。...那数据在协议栈中到底经历了什么?才变成了一个一个的数据包?...而我们需要知道数据包是由以下部分组成的: 各种头部信息 真实数据 而从 MTU 中减去各种头部数据的大小,剩下的就是 MSS 了,也就是实际的数据。...例如我发这篇文章时所发请求的数据长度就可能超过 MSS 。 过长数据包拆分 此时就需要对数据进行拆分,按照 MSS 的长度为单位进行拆分,将拆出来的数据分别装进不同的数据包中。

    85420

    浅谈MVC

    View:就是在xib文件中设计出来的那些View对象(storyboard暂时我还没去学,不敢妄下结论哈); Controller:就是各个ViewController对象; 确实很简单明了...当然,在实际开发过程中,还是遇到了一些小问题——主要是xib文件中控件、事件与代码中属性、变量或方法的连接问题。...但是,若每个子View都使用各自xib文件进行设计,那事件的连接线似乎无从接起,因为貌似无法跨xib文件进行连接。...另一个法子,也是目前我在项目中使用的法子,即是只用一个xib文件进行设计,每个子View的界面设计工作都放到ViewController对应的xib文件中来设计,这样界面事件就能轻松跟ViewController...这两者很像,但是仔细考量其实还是不一样,两种系统设计方式分别侧重不同的开发场景: 传统三层架构设计更适合Web开发,因为Web系统重在服务端数据的大量展现,数据从用户界面产生后,最终会流转、持久化到数据库中

    95020

    IOS入门之StoryBoard

    概述 在iOS的发展历程中,IOS开发经历了三种主要流派:使用代码手写UI及布局;使用单个xib文件组织viewController或者view;使用StoryBoard来通过单个或很少的几个文件构建全部...XIB 其实IB和xib是从iOS SDK初次面世开始就是捆绑在开发者工具套装内的内容了,而到了Xcode 4之后更被直接集成到了Xcode中成为了IDE的一部分. xib设计的一大目的其实是为了良好的...MVC:一般来说,单个的xib文件对应一个ViewController,而对于一些自定义的view,往往也会使用单个xib并从main bundle进行加载的方式来载入.IB帮助完成view的创建,布局和与...StoryBoard 简单理解来说,可以把StoryBoard看做是一组viewController对应的xib,以及它们之间的转换方式的集合.在StoryBoard中不仅可以看到每个ViewController...并且可以通过 Segue 来进行 View 之间的数据传递,统一规范 View 之间跳转的代码,让逻辑更清晰。 所以我们在写布局的时候尽量预览下实际效果。 ?

    1.8K70

    【IOS开发基础系列】Storyboard专题

    你可以从 Object Library中拖控件(右下角)到viewcontroller 中,并修改它的布局。...与使用 MainWindow.xib 的时候不同,故事板中不会包含应用程序委托。...2 使用 2.1 结合xib使用     思路:         APP跳转流程在故事板中呈现,但是VC的事件处理与详细视图设计放在xib文件中。     ...如果是使用IB ,在 MainWindow.xib中会有应用程序委托的一个引用,同时你可以将顶层的ViewController 连接到应用程序委托的IBOutlet 属性。但现在使用故事板就不可能了。...3 设计原则 3.1 布局设计原则 3.1.1 一个控件的布局尽量只采用一种方式,要么是Storyboard(XIB)要么是代码         因为视图在刷新时,会直接从Storyboard中加载控件的大小

    1.3K30

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

    引 在iOS的开发过程中,不可避免的要设计界面,在android中有xml设置界面和直接使用java代码设置界面控件两种方式,在之前的ios开发中也是类似的有xib文件设置界面及用代码直接设置控件两种方法...,但后来又出了一种方式,就是storyboard故事板子,其实storyboard和xib文件很像,最大的不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard...对应多个,基本一个应用只需要一个storyboard就可以了,不再需要为每个控制器创建一个xib文件,从这点上来说,还是很方便的,在storyboard中查看各个界面的跳转也很方便,但之前一直使用xib...:YES completion:^{}]; } 现在运行工程,就可以点击两个按钮欢快地跳来跳去了,可以看到从Page2跳回Page1的时候,动画的方向和从Page1跳到Page2时是相反的,这才是跳回嘛...使用Segue在界面间传值: 我们在两个视图中都添加了TextField编辑输入框,这样我们可以在Page1的页面中输入数据来传递到Page2显示,同样的可以在Page2中输入数据回到Page1显示。

    1.5K20

    关于IB_DESIGNABLE IBInspectable的那些需要注意的事

    现在在Xode 7中,我们默认创建一个View,是不给我们默认生成一个XIB文件,ViewController会有下面那个选项,可以选择勾上。 ?...我们这个自定义View肯定是放在了一个ViewController上面,代码创建出来或者直接拖拽到Xib / Storyboard 上。...UINibDecoderDecodeObjectForValue——[UIClassSwapper initWithCoder:]——[BottomCommentView initWithCoder:] 从NSBundle...我们在ViewController里面拖拽了一个View,并且更改它的class为我们自定义的class,那么接下来所有view的绘制都会交给我们这个自定义view的class,由这个class来管理。...initWithNibName要加载的Xib的类为我们定义的ViewController。loadNibNamed要加载的Xib的类为NSOjbect。

    1.6K30

    制作动态framework与静态framework的那些坑

    我们使用xib方式创建了tableView和cell以及一个viewcontroller 3 需要暴漏给外部使用h文件 好了基本的工程已经出来了,现在我们来看看怎么玩这两种形式的framework...UIImage *staticImage = [UIImage imageNamed:@"res.bundle/test.png"]; 因为此时它是游离于静态库之外,在main bundle中的我们可以采用传统的从main...bundle加载资源的方式按照名称加载(此时多了个壳,因为bundle采用路径方式查询资源,我们就按照路径拼接上资源所在的bungle即可) 2 xib加载 对于xib这个资源比较特殊,虽然是静态库但是依然被编译成为了...nib文件存放在framework中 同样App默认也是从Payload这个里去按照名称搜索,不过此时想要拿到对应的nib则需要先进入framework然后才是对应资源名称,因此可以我们就需要加载个库名称啦...其实啊,这个里面有个隐含问题:默认情况会搜素main bundle中医ViewController同名的xib,而我们的库需要加前缀才能定位,因此要手动使用加载nib的方式创建我们的Controller

    2.1K20

    iOS开发--UIWindow与程序启动原理与两种创建控制器的方法

    Paste_Image.png 3、控制器的创建(Xid) /* 通过xib创建控制器的view 1.一定要描述xib的文件拥有者是控制器,也就是说这个xib是用来描述控制器 */ 1.通过File...Paste_Image.png 3.通过Xib 要是用控制器alloc】 initWithNibName:bundle:】 bundle传nil默认就是从[NSBundle mainBundle] ?...Paste_Image.png // 加载跟类名相同的xib // 如果描述控制器View的xib跟控制器的类名相同,就会去加载 ?...// 1.寻找有没有跟控制器类名同名但是不带Controller的xib,如果有就会去加载(View.xib) // 2.寻找有没有跟控制器类名同名的xib,如果有就会去加载(ViewController.xib...Paste_Image.png 也就是self.window.rootViewController = ViewController,就不必设置尺寸 开发注意:不要再ViewDidLoad中打印尺寸,在

    1.2K20

    如何将数据从MySQLMongoDB中迁移至云开发数据库

    前言 云开发数据库 云开发为我们提供了一个 JSON 文档型数据库(NoSQL),并集成了增删改查等 API,操作方便,简单易懂。...并且相比传统数据库而言它具有高性能的数据库读写服务,可以直接在客户端对数据进行读写,无需关心数据库实例和环境。...from=12763 迁移说明 本篇文章从 MySQL、MongoDB 迁移到云开发数据库,其他数据库迁移也都大同小异~ 迁移大致分为以下几步?...: 从 MySQL、MongoDB 将数据库导出为 JSON 或 CSV 格式 创建一个云开发环境 到云开发数据库新建一个集合 在集合内导入 JSON 或 CSV 格式文件 Mysql迁移到云开发数据库...数据库导入 我们进入云环境后,找到数据库选项,默认有一个 tcb_hello_world 集合,可以把他删掉。

    3.8K1816

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

    UI 控件; (4) xib 和 nib 文件 xib 和 nib 后缀文件 :  -- 新旧区别 : nib 后缀是传统格式, xib 后缀是新格式; -- 默认模板 : Xcode 默认使用 xib...: 获取委托对象, 可以向其中存取数据, 可以作为 IOS 应用的通信中心, 程序组件之间通过委托对象进行数据交互; -- 处理生命周期事件 : 应用程序委托对象还处理 IOS 应用的各种生命周期事件...对象 : 该对象用于加载该对象对应的 xib 等界面设计文件; self.viewController = [[FKViewController alloc] initWithNibName:@"FKViewController..." bundle:nil]; -- 显示界面 : 让应用程序窗口显示 ViewController 对象; self.window.rootViewController = self.viewController...IOS 图标设置 IOS 图片设置 : 直接从文件目录将图片拖动到 Xcode 相应的设置中. -- 设置图标 : 在项目文件视图中, 点击 Images.xcassets, 选中左侧的 AppIcon

    5K30

    如何将数据库从SQL Server迁移到MySQL

    首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。...Server数据库服务器,然后选择要逆向的数据库名,比如选中“WSS_Content_80”如图所示: 单击确定即可生成物理模型图: 然后单击“Database”菜单下的Change Current...二、迁移数据内容 数据内容只能通过生成INSERT语句的方式来做。...首先使用SSMS的“生成脚本”功能(在数据库上右键,选择“任务”“生成脚本”选项),可以为SQL Server数据库中的数据生成插入脚本。...首先选择要迁移数据的表,这里我们全选所有的表: 然后单击下一步,选择将脚本保存到新的查询窗口: 单击“高级”选项,在高级选项窗口中选择“要编写脚本的数据的类型”为仅限数据: 然后“确定”再下一步下一步即可生成

    3.9K10

    UI篇-VC的生命周期以及UIView的layoutSubviews和drawRect方法

    看似常用的UIView,其实有很多不经常用到的方法和应该注意的机制,我是一个喜欢打破砂锅问到底的人,可是很多问题在网上搜索不到答案,大部分的博客都是转载相同的东西,所以我自己就新建 Dome,实际测试了一些数据...---- viewController的生命周期 单个viewController的生命周期 initWithCoder:(NSCoder *)aDecoder:(如果使用storyboard或者xib...(如果用xib创建的情况下) loadView:ViewController2 viewDidLoad:ViewController2 viewWillDisappear:ViewController1...setNeedsLayout会默认调用layoutSubViews,就可以处理子视图中的一些数据。...**综上两个方法都是异步执行的,layoutSubviews方便数据计算,drawRect方便视图重绘。

    1.9K30
    领券