0

从你们那里学到了很多东西,几个小时后,我终于设法将一个 xib 加载到一个 GRect 中,用于我构建的一个搜索 xib。

基本上,当您点击 main.xib 中的单元格时,它会将 search.xib 加载到 Grect 中,以便我可以过滤列表,单击值,然后放回 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];

}
4

1 回答 1

1

viewDidLoad是 NSViewController 中的一个方法。

而且您正在从 Nib 创建一个视图,因此您应该使用awakeFromNibNSView 的等效方法。

于 2012-11-10T03:49:44.220 回答