Реализация 2 XIB в одном представлении - PullRequest
0 голосов
/ 04 октября 2011

В моем приложении для iPad я хочу реализовать 2 файла XIB в одном представлении. Это должно выглядеть как разделенное представление, но я не хочу использовать разделенное представление. Как это можно сделать.

1 Ответ

0 голосов
/ 04 октября 2011
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(........);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...