在Grect中加载xib的问题

时间:2012-11-09 23:25:55

标签: iphone ios xcode

向你们学习很多东西,几个小时后我终于设法将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];

}

1 个答案:

答案 0 :(得分:1)

viewDidLoad是NSViewController中的一个方法。

您正在从Nib创建一个View,因此您应该使用NSView的等效方法awakeFromNib