繁体   English   中英

UIView和UILabel在IB上创建,其出口在viewDidLoad中返回“ nil”

[英]UIView and UILabel created on IB their outlets returning “nil” in viewDidLoad

http://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/中所示 ,我已经用UIView(contentViewForScroll)设置了UIScrollView来保存所有内容,但IB没有显示任何警告关于错位,预期宽度等等。

但是,当我尝试以编程方式添加约束条件以设置viewDidLoad上的“ contentViewForScroll”的宽度时,我得到了一个奇怪的错误描述,在google之后,我发现这意味着您的对象的属性返回“ nil”。 这就是正在发生的事情! 然后我意识到,当我修改其属性时,我的UILabel不会更改其值。 其他UILabel和UIButtons均按预期更改了其文本和标题属性。

我尝试重命名两个控件(这就是为什么它有这么长的名称),更改.h文件或.m文件中的定义的原因。 什么都没有。

有任何想法吗?

这是我在.m文件中的代码:

@interface MarketsViewController ()
    @property (strong, nonatomic) IBOutlet UILabel *labelMarketName;  // This is returning nil
    @property (strong, nonatomic) IBOutlet UIImageView *imageVenueCover;
    @property (strong, nonatomic) IBOutlet UILabel *labelMarketAddress;
    @property (strong, nonatomic) IBOutlet UILabel *labelMarketCity;
    @property (strong, nonatomic) IBOutlet UIView *contentViewForScroll; // This is returning nil
@end

@implementation MarketsViewController
    - (void)viewDidLoad {
        [super viewDidLoad];

        NSLog(@"UIView: %@", self.contentViewForScroll);   // this is returning "UIView: (null)"
        NSLog(@"UILabel: %@", self.labelMarketName);   // this is returning "UILabel: (null)"
    }
@end

谢谢

您是否将情节提要中的对象链接到插座? 为此,您可以打开助手编辑器并将ctrl从情节提要中的对象拖到上述代码中的出口。 或者,您可以从对象拖动到文件所有者,然后从那里选择出口。

需要注意的一件事是,通常您希望使IBOutlets变弱,而不是像上面那样变强。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM