gpt4 book ai didi

ios - 带有自定义 XIB : IBOutlets not working 的自定义 UIView

转载 作者:行者123 更新时间:2023-12-01 16:58:46 26 4
gpt4 key购买 nike

我正在使用最新的 SDK 和 XCode 4.2 开发一个 iOS 应用程序。

我想在自定义 UIView 中使用自定义 XIB。

我的自定义 UIView:

@interface CoordinateView : UIView {
/**
*/
ARGeoCoordinate *geoCoordinate;
/**
*/
IBOutlet UILabel* title;
/**
*/
IBOutlet UILabel* subTitle;
/**
*/
IBOutlet UIImageView* image;
}

执行:
@implementation CoordinateView

@synthesize geoCoordinate;

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// Initialization code.
//
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CoordinateView" owner:nil options:nil];
for(id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[CoordinateView class]])
{
[self addSubview:currentObject];
break;
}
}
}
return self;
}

- (id)initForCoordinate:(ARGeoCoordinate *)coordinate
{
self.geoCoordinate = coordinate;
CGRect theFrame = CGRectMake(0, 0, BOX_WIDTH, BOX_HEIGHT);

self = [self initWithFrame:theFrame];
if (self)
{
title.text = geoCoordinate.title;
image.image = [UIImage imageNamed:[NSString stringWithFormat:@"03%d.jpg", geoCoordinate.id]];
}
return self;
}

初始化 CoordinateView我用 initWithCoordinate方法。

调试发现 title initWithCoordinate 里面是零:
title.text = geoCoordinate.title;

我已经使用 Interface Builder 来“链接”IBOutlets。

我做错了什么?

最佳答案

不久前我遇到了同样的问题。这是我为修复它所做的:

  • 在 xib 中,打开文档大纲(显示 View 列表及其 subview 等的左 Pane )。
  • 左键单击代表您的类的 View (在您的情况下为 CoordinateView)并将蓝线向下拖动到 subview (在您的情况下 UILabel 称为标题)
  • 然后 XCode 应该会弹出一个带有选项“标题”的小对话框(因为您的标签称为标题。)
  • 点击标题和wallaa。
  • 回到你的调试并检查你的 socket 是否仍然为零。

  • 只是个人喜好(不一定与讨论的主题相关):我会称您的 UILabel 为“titleLabel”而不是“title”,因为 [objectInstance title] 看起来它会将 NSString 返回给不知道该“title”的人是一个UILabel。只是个人喜好,仅此而已。

    干杯

    关于ios - 带有自定义 XIB : IBOutlets not working 的自定义 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9164726/

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