在单个视图中实现2 xib

时间:2011-10-04 16:45:55

标签: objective-c ipad

在我的iPad应用中,我想在一个视图中实现2个xib文件。它应该看起来像一个拆分视图,但我不想使用拆分视图。如何做到这一点。

1 个答案:

答案 0 :(得分:0)

NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"FooView" 
                                           owner:self options:nil];
[self.view addSubview:[array objectAtIndex:0]];

在大多数情况下,你可能想要XIB中的第一个(唯一的?)顶级对象,但是在某些情况下你可能希望在XIB中引用不同的东西。

这个经典的例子是我们加载UITableViewCells的方式。这里的轻微变化是设置和使用插座并将XIB中的第一项直接装入插座。

[[[NSBundle mainBundle] loadNibNamed:@"FubarView" owner:self options: nil] objectAtIndex:0];
[self.view addSubview:self.fubarViewOutlet];

无论您选择这样做,在将其添加到父视图后,只需设置框架以指定大小和位置。使用插座或将数组中的项目作为适当的类投射,并像其他视图一样使用它。

编辑:从您的评论请求中,我会写这样的内容。

- (void)tableView:(UITableView *)tableViewTemp didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  if(indexPath.row==0){ 
    NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"CNBViewController" 
                                       owner:self options:nil];
    self.selectedRowView = [array objectAtIndex:0];  // assumes a class variable selectedRowView
    [self.view selectedRowView];
    // newView.frame = CGRectMake(........);
  }
}