Ios 更改自定义UIView的UILabel文本';行不通
我有一个自定义的Ios 更改自定义UIView的UILabel文本';行不通,ios,objective-c,ipad,uiview,xib,Ios,Objective C,Ipad,Uiview,Xib,我有一个自定义的UIView,它是用xib构建的,它有一个名为CustomModuleUIView的文件所有者,其中包含标签和按钮。我已经在我的Rootviewcontroller中调用了这个自定义视图,并使用initWithCoder方法成功地显示了它。问题是我无法从customMouleUIView或根ViewController更改UILabel的默认文本。我在initWithCoder中找到了一个示例,它告诉我在initWithCoder中进行自定义初始化,但它对我不起作用,没有任何更改
UIView
,它是用xib构建的,它有一个名为CustomModuleUIView
的文件所有者,其中包含标签和按钮。我已经在我的Rootviewcontroller中调用了这个自定义视图,并使用initWithCoder
方法成功地显示了它。问题是我无法从customMouleUIView
或根ViewController
更改UILabel
的默认文本。我在initWithCoder
中找到了一个示例,它告诉我在initWithCoder
中进行自定义初始化,但它对我不起作用,没有任何更改,并且显示默认文本时没有任何错误
这是我的自定义UIView xib
这是我的根视图控制器
这是我的代码哦自定义UIView.h
#import <UIKit/UIKit.h>
@interface ModuleCustomUIView : UIView
-(void) setup;
@property (weak, nonatomic) IBOutlet UIImageView *_moduleIcon;
@property (retain, nonatomic) IBOutlet UILabel *_moduleName;
- (IBAction)openDemo:(id)sender;
- (IBAction)close:(id)sender;
@property (weak, nonatomic) IBOutlet UIImageView *_moduleImage;
@property (strong, nonatomic) IBOutlet UILabel *_positionLabel;
@end
在initWithCoder内部,导致无限循环
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self)
{
}
return self;
}
-(void) setup
{
NSString *xib= @"CustomUIView";
NSArray *array=[[NSBundle mainBundle] loadNibNamed:xib owner:self options:nil] ;
UIView *view =[array objectAtIndex:0];
//code that doesn't work
[_positionLabel setText:@"hello world"];
//
[self addSubview:view];
}
这是我的根视图控制器
- (void)viewDidLoad
{
[super viewDidLoad];
[_moduleCustomView setup];
[self.view addSubview:_moduleCustomView];
//code doesn't work
[_moduleCustomView setText:@"hello world"];
}
即使在did加载中,我也无法更改文本我想文件所有者属性应该是您的“根视图控制器”。我想文件所有者属性应该是您的“根视图控制器”。我发现了我的错误,这是关于文件所有者的,我在检查器中更改了它,但通过选择uiview而不是te文件的所有者,我将NSObject更改为我的类名并重新连接标签。我发现了我的错误,这是关于文件所有者的,我在inspector中更改了它,但选择了uiview而不是te文件的所有者,我将NSObject更改为我的类名并重新连接标签。请发布您的代码。您是否将xib中的标签链接到视图控制器中相应的IBOutlet?我现在只能在8小时后添加注释这是stackoverflow告诉我的。我已在文件所有者中将xib和标签与IB链接请发布您的代码。您链接了吗xib中的标签与视图控制器中相应的IBOutlet?stackoverflow告诉我,我现在只能在8小时后添加注释。我已经在文件所有者中将xib和标签与IB链接。我想我无法将基于UIView的xib与UIViewController链接?抱歉误读。。。您是否尝试过
[view.positionLabel setText:@“hello world”]代码>在您的设置方法中?或[\u moduleCustomView.positionLabel setText:@“hello world”]
在你的viewDidLoad方法中?是的,这就是我在没有任何更改的情况下所做的,昨天我尝试了从NIB方法中唤醒它,我可以更改它,但我想动态编辑它。我想我无法将基于UIView的xib与UIViewController链接?对不起,误读了。。。您是否尝试过[view.positionLabel setText:@“hello world”]代码>在您的设置方法中?或[\u moduleCustomView.positionLabel setText:@“hello world”]
在您的viewDidLoad方法中?是的,这就是我所做的,没有任何更改,昨天我尝试了awakeFromNib方法,我可以更改它,但我想动态编辑它。
- (void)viewDidLoad
{
[super viewDidLoad];
[_moduleCustomView setup];
[self.view addSubview:_moduleCustomView];
//code doesn't work
[_moduleCustomView setText:@"hello world"];
}