现在,我有一个名为OTGMarkerDetailView的自定义视图类,该类继承自UIView及其相应的.xib。它只有两个文本标签,并且已将文本标签链接到OTGMarkerDetailView.m中的文本标签IBOutlets。
OTGMarkerDetailsView.h:
#import <UIKit/UIKit.h>
@interface OTGMarkerDetailView : UIView
- (void)setLabelsWithMainAddress:(NSString *)mainAddress subAddress:(NSString *)subAddress;
@end
OTGMarkerDetailView.m
#import "OTGMarkerDetailView.h"
@interface OTGMarkerDetailView ()
@property (nonatomic, strong) IBOutlet UILabel *mainAddressLabel;
@property (nonatomic, strong) IBOutlet UILabel *subAddressLabel;
@end
@implementation OTGMarkerDetailView
- (void)setLabelsWithMainAddress:(NSString *)mainAddress subAddress:(NSString *)subAddress {
NSLog(@"%@", self.mainAddressLabel.text);
self.mainAddressLabel.text = mainAddress;
self.subAddressLabel.text = subAddress;
NSLog(@"%@", self.mainAddressLabel.text);
}
@end
我使用initWithFrame将其作为子视图加载到另一个视图中。但是,当我尝试设置文本标签值时,控制台始终记录为空,并且当我使用断点时,mainAddressLabel和subAddressLabel本身似乎为零。在将xib链接到视图时,我做错什么了吗?我想念什么?谢谢。
当您使用initWithFrame在另一个视图中创建自定义视图时,将创建一个自定义类的新实例。此实例与您在界面生成器中使用的实例不同,因此,此新创建实例的标签属性为nil。为了解决此问题,请在连接了连接的接口构建器中将视图置于其父视图中,或者为您的自定义视图覆盖initWithFrame并在其中初始化标签。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句