iOS中从加载的xib中得到的控件为空的问题

原创 2016年06月01日 21:22:32

 jTreatIpadLookViewController=[[JTreatIpadLookViewControlleralloc]initWithNibName:@"JTreatIpadLookViewController"bundle:nil];

这是我加载xib的方式,,但是我打印其中的button总是为空,,其他的控件也是这种情况:


我经历了几个痛苦的过程,

1.首先我测试了一下,在autolayout  和sizeClass下不同的情况,因为网上有人说sizeClass可能引起这种情况,,但是没有解决,,

2.我测试了iOS 的不同版本,,问题出现了,,在iOS9中,,没有这种问题,,而是只在iOS8才会出现(郁闷,,不能跟客户说,叫他升级吧)所以发现问题基本没什么用,,

3.。我静静的观察代码,想了一下,,为什么会出现这种情况,,我知道的只有两种情况 (1.没有初始化,2.就是控件被释放了)

@interface JTreatIpadLookViewController ()<UIScrollViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource>
{

    __weakIBOutlet UIButton *forceUpdateButton;
    __strongIBOutlet UIScrollView *scrollerLook;
    NSMutableArray *pathPhoto;
    UIScrollView *downPhotoScroller;
}
@end

@implementation JTreatIpadLookViewController


发现了一点问题,,我在interface中拖来的xib控件,,看到了都是__weak突然想到是不是__weak的原因,,所以我吧他改成了__strong 类型的,bingo,,问题解决了,,

但是为什么会出现这种请情况,,因为我们用了ARC以后内存释放的问题基本不会出现了,,

最后在build setting里面发现这个文件居然用了MRC模式,,气死我了,,


所以问题找到了,在iOS8出现这种请情况,,看看你的文件是不是用了MRC模式,造成了提前释放控件


 


正确的加载xib文件的View或者ViewController

可能很多人都非常熟悉了,在故事版中加载一个ViewController。  ViewC *viewController = [self.storyboard instantiateViewCon...
  • u012986410
  • u012986410
  • 2015年08月16日 15:53
  • 15154

ios 加载xib遇到的坑

storyboard,个人觉得是个好玩意儿,但是什么都做到其中总觉得杂乱。个人偏好把复杂的局部控件(比如定制的collectionviewcell)在xib文件中拉好。 在开发过程中遇到不少坑,记忆...
  • wusoule
  • wusoule
  • 2015年05月10日 20:29
  • 2258

UIViewController加载不出来/XIB加载不出来的问题总结

用storyBoard或是XIB创建界面时,创建语句应该包含[NSBundle mainbundle]或是bundle参数,并且应该指定identifier,不应该出现alloc init,否则在界面...
  • cuin123
  • cuin123
  • 2015年11月30日 14:55
  • 2254

iOS用 xib创建View,解决xib上的控件,不显示的问题;

1.创建视图类,集成UIView 如:AttributeThreeView #import  @interface AttributeThreeView : UIView @pr...
  • sinat_35710100
  • sinat_35710100
  • 2016年09月11日 16:43
  • 3134

iOS中从加载的xib中得到的控件为空的问题

iOS中从加载的xib中得到的控件为空的问题
  • baidu_27381105
  • baidu_27381105
  • 2016年08月18日 18:10
  • 1966

xib上控件不显示,或者为nil

逛了一下午博客网站也没解决,也可能那些已经解决的跟我的问题不太一样 场景:建立ViewController时候选中xib文件,控件拖线ViewController中 现象:过了一段时间突然发现Xi...
  • xiaozuo9437
  • xiaozuo9437
  • 2017年02月20日 17:54
  • 223

自定义View(加载Xib方式)

xib的使用 Xib和Storyboard的对比共同点: 都用来描述软件界面 都用Interface Builder工具来编辑 本质都是转换成代码去创建 不同点Xib是轻量级的用来描述局部的UI界面 ...
  • xiaoben_mao
  • xiaoben_mao
  • 2015年05月30日 20:18
  • 1686

关于从xib加载视图

关于从xib加载视图
  • jingqiu880905
  • jingqiu880905
  • 2016年06月23日 17:51
  • 1088

iOS--控制器加载自定义view的xib

我们在项目中,经常需要使用到自定义的view,而xib布局显得更为简洁,那么如何加载一个自定义的xib呢,网上的方法也很多很多,就是因为太多了,我经常会弄混,所以总结其中一个使用,如果以后使用到其他的...
  • yhy_coding
  • yhy_coding
  • 2016年12月06日 15:41
  • 2823

IOS 使用XIB 自定义View

一般自定义View       代码方式 有       在初始化的时候添加 子Views - (id)initWithFrame:(CGRect)frame { self = [...
  • li6185377
  • li6185377
  • 2012年10月31日 10:16
  • 58002
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中从加载的xib中得到的控件为空的问题
举报原因:
原因补充:

(最多只允许输入30个字)