gpt4 book ai didi

objective-c - IBOutlet 在自定义 UIView 中为 nil(使用 STORYBOARD)

转载 作者:太空狗 更新时间:2023-10-30 03:13:54 26 4
gpt4 key购买 nike

我有一个自定义的 UIView 类。在其中,我为 UIImageView 声明了一个 IBOutlet 属性。

#import <UIKit/UIKit.h>

@interface SettingItem : UIView{

}

@property (strong, nonatomic) IBOutlet UIImageView *myImage;

@end

现在我正在使用 Storyboard。有一个 View Controller 。我将 UIView 拖到 viewcontroller。我拖了一个 UIImageView 作为上面 UIView 的 subview 。我将 Storyboard中的“SettingItem”类设置为 UIView。我通过从实用程序窗口中 SettingItem 的 socket 正常拖动将 socket 连接到 myImage。


SettingItem 实现

#import "SettingItem.h"

@implementation SettingItem

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self baseInit];
}
return self;
}

-(id) initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self) {
// Initialization code
[self baseInit];
}
return self;
}

- (void) baseInit{
NSLog(@"myImage %@"self.myImage);
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/

@end

现在我的问题是 myImage 总是 nil,在 NSLog 上面只是打印 (null) 用于导出.我检查了 Storyboard 中的 View 并检查了它的 socket 引用及其对 myImage 的指向。我错过了一些东西。我用谷歌搜索了帮助,但找不到任何解决方案。

你能指出我做错了什么吗?

最佳答案

在您的 View 中覆盖 awakeFromNib - 这是在分配 IBOutlet 后调用的第一个生命周期方法,并且是您的代码的正确位置。

关于objective-c - IBOutlet 在自定义 UIView 中为 nil(使用 STORYBOARD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com