FluidInfo *fluidInfo = [[FluidInfo alloc]init];
UIView *info = [[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:fluidInfo options:nil] objectAtIndex:0];
[self createFormulaPopup:info];
我有一个UIView
的nib文件。我有一个名为“UIView
”的FluidInfo
子类。我使用我的函数“UiView
”将viewController
显示为createFormulaPopup
内的弹出窗口
我已将UIView
作为FluidInfo
的子类。当我创建出口和行动时,它们都正常工作。
问题是我的init
中的UIView
功能意外运行。如果我记录的东西然后它与我的弹出窗口同时出现..但如果我设置类似于视图的背景颜色,它似乎消失了。如果我在界面构建器中设置它会坚持。如果我将颜色的变化附加到UIView
内的动作,那么这也会起作用。但是当视图初始化时,它似乎撤消了我以编程方式完成的所有内容。
答案 0 :(得分:0)
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self = [[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:self options:nil]objectAtIndex:0];
// Initialization code
}
return self;
}
答案 1 :(得分:0)
在您的代码中,您传递了视图控制器
的FluidInfo * fluidInfo [[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:fluidInfo options:nil]objectAtIndex:0];
因为你必须传递所有者作为你的文件所有者,你将所有者作为视图子类传递,这就是为什么它可能无法通过self(你的视图控制器)所以它会在应用程序中找到文件所有者。
[[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:self options:nil]objectAtIndex:0];
参考Stack over flow的这个链接,为您提供文件所有者What describes the "File's Owner" best in objective-c / cocoa Nib?
的非常好的描述