目录

使用xib文件构建界面

1、将ViewController.h、ViewController.m、Main.storyboard三个文件delete掉

2、Deployment Info的Main Interface置空,也就是去掉Main

3、添加试图控制器

4、修改AppDelegate文件,将xib文件添加到window中

5、运行结果

6、 错误“This Class is not Key Value Coding-Compliant for the Key”



使用xib文件构建界面

目前做IOS开发iphone应用,xcode默认布局使用故事板来构建界面,老版本的工程中则使用的XIB文件来构建,XIB是在NIB的基础上发展而来,最初苹果公司采用的是NIB来构建界面,后来文件格式采用了xml,便更名为XIB。

默认在创建工程的时候采用的故事板Main.storyboard作为应用界面,更换成xib文件构建界面需要经过四个步骤,下面是oc版本的,

1、将ViewController.h、ViewController.m、Main.storyboard三个文件delete掉

2、Deployment Info的Main Interface置空,也就是去掉Main

注意:Main Interface置空,什么都不要写,重要的事情再说一遍:什么都不要写

如下图

3、添加试图控制器

工具栏 File > New > File 弹出下图,选择:Cocoa Touch Class

然后创建RootViewController如下图,一定有记得勾选XIB file

然后生成如下目录的文件

在XIB文件中加入几个控件,同故事板一样,拖拽进来即可

4、修改AppDelegate文件,将xib文件添加到window中

#import "AppDelegate.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.//最后一步将创建xib文件绑定到window界面上self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];self.window.rootViewController = [[UIViewController alloc]initWithNibName:@"RootViewController" bundle:nil];[self.window makeKeyAndVisible];return YES;
}@end

运行如果发现无法显示界面,检查一下步骤2和步骤4是否正确

5、运行结果

6、 错误“This Class is not Key Value Coding-Compliant for the Key”

注意上面在在布局好之后,如果不连接IBOutlet属性变量还好,一旦增加就会报错:“This Class is not Key Value Coding-Compliant for the Key”

self.window.rootViewController = [[UIViewController alloc]initWithNibName:@"RootViewController" bundle:nil];

千万注意这样写会有个错误,可能还还很不好找,原因是不能像上面那这样写,应该写为:

self.window.rootViewController = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];

原因是可能在别处看的是UIViewController,但是这个UIViewController是系统的,确实能直接用但是直接用了之后就会出现上爱你错误。

并且在头部加上:#import "RootViewController.h"


#import "AppDelegate.h"
#import "RootViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.CGRect screen = [[UIScreen mainScreen] bounds];self.window = [[UIWindow alloc]initWithFrame:screen];self.window.rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];[self.window makeKeyAndVisible];return YES;
}@end

IOS 学习笔记 使用xib文件构建界面相关推荐

  1. Dokcer学习笔记之Dokcerfile 文件构建

    vim Dockerfile #First dockerfile FROM centos MAINTAINER chen RUN yum -y install wget RUN wget -S htt ...

  2. Vue学习笔记:使用CLI构建Vue项目

    Vue学习笔记:使用CLI构建Vue项目 一.安装Vue CLI 要用到集成在node.js里的npm来安装Vue CLI. 1.下载并安装node.js 2.配置node.js的环境变量 3.启动命 ...

  3. IOS学习笔记39——拍照、从相册选图并对图片进行裁剪

    2013第一篇,大家新年快乐!感谢一直关注我博客的同学们,有你们的支持我才有动力越做越好!有阵子没写博客了,因为前阵子着实比较忙,没时间整理,今天主要实现一个小Demo,我们知道在Instagram或 ...

  4. C++学习笔记之对文件的操作2

    转载自** https://www.cnblogs.com/uniqueliu/archive/2011/08/03/2126680.html ** 什么都不说了,继续<C++学习笔记之对文件的 ...

  5. iOS学习笔记-自己动手写RESideMenu

    代码地址如下: http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars ...

  6. iOS学习笔记-地图MapKit入门

    代码地址如下: http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错 ...

  7. iOS学习笔记-自定义过渡动画

    代码地址如下: http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swi ...

  8. IOS学习笔记05---C语言程序的开发运行过程

    IOS学习笔记05---C语言程序的开发运行过程 0 5.C语言3-C语言程序的开发运行过程 ----------------------------------------------------- ...

  9. IOS学习笔记02---语言发展概述,计算机语言简介.

    IOS学习笔记02---语言发展概述,计算机语言简介. ------------------------------------------------------------------------ ...

最新文章

  1. oracle多种导入导出数据方法
  2. 编程实战一通讯录程序
  3. Veritas Storage Foundation 5.0 HA for Windows
  4. 跨浏览器开发工作小结
  5. 笔试题--Multicore简答题(下)
  6. 详解6G系统数据治理方案的设计要点和原则
  7. 怎么更改wifi频段_手机wifi延迟高怎么办
  8. 如何快速重置OUTLOOK2013,2016到初始配置状态,outlook 修改数据文件位置
  9. 树的基本定义表示方法
  10. Maven项目导入到Eclipse时Build出现the user operation is waiting for building workspace to complete的问题解决
  11. 《容器技术系列》一3.2 Docker Daemon的启动流程
  12. CSS3+JS制作的一款图标任意拖动,并且可以放在文件夹中
  13. sts4linux,STS3下载和安装,STS4升级
  14. android长截图工具下载,一键长截屏下载-一键长截屏 安卓版v1.0.0-PC6安卓网
  15. 腾达ap设置说明_腾达(Tenda)F6无线信号放大模式(Client+AP)设置教程 | 192路由网
  16. resource failed to call close
  17. 房屋租赁合同法律规定是怎样的
  18. spring security自定义登录失败返回错误信息
  19. 解决Intellij IDEA 一直在indexing....,导致idea很卡,无法操作
  20. 应用MATLAB建模与仿真

热门文章

  1. video标签样式属性设置
  2. 如何快速提升你的能力?
  3. 【转载】机器学习计算距离和相似度的方法
  4. 用剪影画漫画人物的发型你会吗?
  5. 王宝强离婚成了谁的狂欢?——通过阿里云·数加严肃解读数据背后的媒体传播路径...
  6. c语言编程输入5输出五行五列,C语言编程 在屏幕上打印五行*号,每行分别为5个,30个,10个,28个,16个。...
  7. 荣耀30lite支持鸿蒙,曝荣耀30 Lite也要来了:美人尖+高刷新率+48MP三摄
  8. 斗鱼、虎牙、欢聚时代,集体入冬?
  9. 路透社:中国暂停新视频游戏许可申请
  10. 官宣 ! 云盒子企业网盘Mac改版,最美云盘客户端~