向你们学习很多东西,几个小时后我终于设法将xib加载到GRect中,用于我建立的搜索xib。
基本上,当您点击main.xib中的单元格时,它会在Grect中加载search.xib,以便我可以过滤列表,单击该值,然后将其放回main.xib中的单元格。
但是我仍然有来自main.xib的覆盖(tvcells)覆盖我的search.xib的单元格。
似乎没有任何代码正在为search.xib初始化,我在search.xib中的viewdidload中放了一条NSlog消息,并且没有任何内容出现在控制台中,让我知道没有任何代码被执行。
知道为什么吗?
谢谢!
CGRect container = [[UIScreen mainScreen]bounds];
container.origin.x = 0;
container.origin.y = 0;
NSArray *views = [[NSBundle mainBundle] loadNibNamed: @"ingredientSearchViewController" owner: self options: nil];
UIView *referencedView = (UIView *)[views objectAtIndex:0];
referencedView.frame = container;
[self.subView addSubview:referencedView];
NSLog(@"loaded subview but obviously not in subview xib");
尝试以控制器身份执行此操作的其他代码
if (self != nil){
[self.view removeFromSuperview];
}
if(self == nil){
ingredientSearchViewController *vc = [[[ingredientSearchViewController alloc]initWithNibName:@"ingredientSearchViewController" bundle:nil] autorelease];
vc.view.frame = [UIScreen mainScreen].applicationFrame;
vc.delegate = self;
[self.subView addSubview:vc.view];
}
答案 0 :(得分:1)
viewDidLoad
是NSViewController中的一个方法。
您正在从Nib创建一个View,因此您应该使用NSView的等效方法awakeFromNib
。