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和Storyboard生成的控件

XIB 有些情况下需要动态增加一些子控件。 如果用代码直接构建子控件,就是比较麻烦。尽量少写代码。 所以想到的是用xib文件来实现UIView。 问题是UIView不能直接从xib文件构造...

iOS 代码取得到 Storyboard和XIB控件,控制器

为了追求开发效率, 更直观的界面适配,大多人都采用了Storyboard和XIB控件来开发, 结合代码的话, 如何在代码中取得Storyboard中的VC或者控件 有三种方法: ...

解决升级xcode8后XIB中一些视图不显示问题

近期升级了xcode8,遇到了xib视图一些空间不显示的问题,调试时发现时约束的问题,把那些不显示的视图用masonry重新约束了一下就可以了。可是cell上面重新加约束还是不行,最后定位到是图片切圆...

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

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

IOS复习 九宫格 字典转模型与懒加载 xib界面控件代码赋值 模拟下载过程 MJExtension

#import @interface ViewControllerModels : NSObject @property (nonatomic,copy)NSString *name; @p...
  • ridxmc
  • ridxmc
  • 2016年06月13日 10:30
  • 454

iOS tableView 的 cell上其它控件重用(利用view的tag属性巧妙实现重用,从xib中加在cell重载问题)

tableView的cell上面的控件设置tag重用原理
  • sql340
  • sql340
  • 2014年10月28日 15:28
  • 1278

iOS开发之xib或storyboard上给UIScrollView添加子控件约束报错的问题

当我们在xib或者storyboard中添加UIScrollView并像给其他控件设置约束一样设置好约束后(例如top,leading,tralling,bottom都为0),显示一切正常,如图:但是...

iOS 开发中问题 ——使用xib拖拽控件操作其约束并添加动画没有效果的问题

在iOS开发过程中会遇到使用xib拖拽控件,为了适配多种屏幕而向控件添加约束的过程,但是控件一旦添加了约束之后,操作其frame就变得并不如意了,这样可以通过拖拽添加的约束线到类文件中成为属性,或者成...

IOS_启动过程_项目文件_传统xib_加载view_空项目

H:/0720/01-Application和AppDelegate_main.m// // main.m // 01-Application和AppDelegate // // Created...

IOS封装纯代码和xib通用控件

  • 2017年09月28日 10:54
  • 70KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中从加载的xib中得到的控件为空的问题
举报原因:
原因补充:

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