Bug:(使用xib加载控制器view时遇到的bug) loaded some nib but the view outlet was not set

当使用 initWithNibName 函数, 并使用 由nib文件生成的ViewController 的view属性时候,遇到这个问题。

UIViewController * UIVC = [[UIViewController alloc] initWithNibName:@"loc" bundle:nil];

[self.view addSubview:UIVC.view];

NibName[2203:207] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "loc" nib but the view outlet was not set.

表面意思是指 我们加载的nib文件,"view" 属性值没有进行设置.

这里的实际情况: 不是所生成的 VC 的view属性值为 nil,  而是所生成的 VC 没有 view 这个属性。 我们使用的是UIViewController 定义的VC, 为什么 VC (View Controller) 会没有 view 属性呢?

(多么具有逻辑性的表述都不如一次成功的完整操作,begin :)

解决方案:

1. 点击我们要加载的 xib 文件

2. 在右边选中 File‘s Owner

 

3. 在 File‘s Owner 的 选项卡的“Custom Class” 属性设置中,将 Class 的值改成对应的控制器, 这里改成 相应的控制器, 例:UIViewController,

4. 这时候,在File‘s Owner 的  选项卡中, 就 会出现“待连接设置” 的 view 属性, 也即我们的编译器 告诉我们的 the view outlet was not set  中的 view。当 File‘s Owner 的 class 为 NSObject 时候,是没有 view 属性的。

连接 view 属性,如果没有显示View(先看上述步棸是否完成,如果完成,则重新编译试试<Commend + B>),然后按住Control键连线,成功后,如下图所示。

Bug:(使用xib加载控制器view时遇到的bug) loaded some nib but the view outlet was not set

时间: 2024-10-25 05:35:03

Bug:(使用xib加载控制器view时遇到的bug) loaded some nib but the view outlet was not set的相关文章

通过Xib加载控制器的View

1.创建窗口self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];2.设置窗口根控制器2.1从XIB当中加载控制器.MyViewController *vc = [[MyViewController alloc] initWithNibName:@"VC" bundle:nil];self.window.rootViewController = vc;3.显示窗口[self.window

IOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; // 返回第component有多少行 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

IOS第八天(1:UITableViewController团购,点击底部,xib加载更多, 代理模式)

******* HMViewController.h #import "HMViewController.h" #import "HMTg.h" #import "HMTgCell.h" #import "HMTgFooterView.h" @interface HMViewController () <HMTgFooterViewDelegate> @property (nonatomic, strong) NS

从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图

标题:从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图作者:Lamond Lu地址:https://www.cnblogs.com/lwqlun/p/11137788.html源代码:https://github.com/lamondlu/Mystique 前言# 如果你使用过一些开源CMS的话,肯定会用过其中的的插件化功能,用户可以通过启用或者上传插件包的方式动态添加一些功能,那么在ASP.NET Core MVC中如

黄聪:AngularJS 动态加载控制器实例-ocLoazLazy

一.AngularJS动态加载控制器和视图实例 路由配置关键代码: [javascript] view plain copy print? //二级页面 $stateProvider.state('main', { url: '/:name', /**如果需要动态加载数据和控制器***/ views: { "": { templateUrl: function ($stateParams) { console.info($stateParams); return '/template/

thinkphp无法加载控制器:Admin

在使用thinkphp时,通过某入口文件访问其他非默认的模块(比如Admin模块),出现报错: 无法加载控制器:Admin 原因:入口文件(比如index.php)中定义了绑定某个具体的模块 如:define('BIND_MODULE', 'Home');//绑定Home模块 index.php入口文件绑定Home模块后,该入口文件只能访问Home模块,无法访问Admin模块

安卓 WebView加载本地图片时居中显示

在一个项目中使用WebView显示gif图片(自定义的View无法放大gif),当图片过小时只在左侧显示,经过研究发现无论设置android:layout_gravity="center_horizontal"还是设置android:gravity="center_horizontal" 都无法居中显示,而且还设置了android:layout_width="wrap_content",但是实际上WebView并没有自适应内容,它的宽度占了屏幕宽

有效解决Android加载大图片时内存溢出的问题

首先解析一下基本的知识: 位图模式,bitmap颜色位数是1位 灰度模式,bitmap颜色位数是8位,和256色一样 RGB模式,bitmap颜色位数是24位 在RGB模式下,一个像素对应的是红.绿.蓝三个字节 CMYK模式,bitmap颜色位数是32位  在CMYK模式下,一个像素对应的是青.品.黄.黑四个字节 图像文件的字节数(Byte) = 图像分辨率*颜色深度/8(bit/8) 例如:一幅640*480图像分辨率.RGB色一般为24位真彩色,图像未经压缩的数据容量为:640X480X24

xib加载局部UIView

xib文件是轻量级的,一般用来描述某一块局部的UI界面,而storyboard是用来描述软件的许多界面,并且能展示多个页面之间的跳转关系 1.xib文件的加载方式 方法1. NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"MJAppView" owner:nil options:nil]; 这个方法会创建xib中的所有对象,并且将对象按顺序放到objs数组中 (如果xib如右图所示,那么objs数组中依次会有3个对象:1个UI