在单个视图中实现xib



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

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(........);
  }
}

最新更新