任何人都知道如何从另一个viewcontroller更改nib内的视图?我有一个从nib-file视图到视图类文件的插座,我有@synthesize
视图类.m
文件。然后我#import "InfoView.h"
(这是视图类)viewcontroller的视图,最后我:
InfoView *infoView;
if (infoView == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"infoView" owner:self options:nil];
infoView = [nib objectAtIndex:0];
}
infoView.contentView.backgroundColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1];"
但我无法改变背景。
有没有人曾尝试做过这样的事情? 感谢您的任何意见!谢谢!
编辑:
解决了UIColor
问题,但这不是问题。
答案 0 :(得分:2)
试试这个代码我已经为你制作了演示应用程序。
创建文件CustomView.h
#import <UIKit/UIKit.h>
@interface CustomView : UIView
@property (nonatomic, strong) IBOutlet UILabel *titleLbl;
@end
CustomView.m。如果您使用的是XIB
#import "CustomView.h"
@implementation CustomView
@synthesize titleLbl = _titleLbl;
- (id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];
UIView *theEditView = [nibObjects objectAtIndex:0];
theEditView.frame = self.bounds;
[self addSubview: theEditView];
theEditView = nil;
}
return self;
}
设置
fileOwner
CustomView.XIB
为CustomView。并连接插座。 您希望CustomView
使用UIView
中的XIB
对象,并使用UIView
重命名CustomView
课程。在IBOutlet
文件中创建.h
,并将其与CustomView
中的XIB
对象相关联。 现在这样做:
self.customViewObj.backgroundColor = [UIColor redColor];
self.customViewObj.titleLbl.text = @"Prateek";
在您的情况下,您的customview
对象未创建。如果您打印对象,它会显示nil
。
答案 1 :(得分:0)
您错误地使用了-colorWithRed:green:blue:alpha
。他们希望浮点值介于0和1之间。您需要这样做:
infoView.contentView.backgroundColor = [UIColor colorWithRed:50.0/255.0 green:50.0/255.0 blue:50.0/255.0 alpha:1];"
答案 2 :(得分:0)
如果您要更改背景颜色,请执行以下操作:
infoView.backgroundColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1];