iPhone addSubview перекрывает весь вид

Я создал файл .xib и добавил к нему UIView в IB, который я назвал detailView. Мне нужно загрузить .xib в область detailView, и вот код, который я использую в своем контроллере представления для этого:

NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"DetailView" 
                                                    owner:self 
                                                  options:nil];
UIView *nibView = [nibObjects objectAtIndex:0];
self.detailView = nibView;

Снимок экрана с настройкой в ​​IB находится здесь: http://www.pict.com/view/2612170/0/screenshot20100123at2

Файл detailView .xib загружается, но по какой-то причине игнорирует фрейм для области detailView, которая была настроена в IB, и заполняет весь экран. Что дает???

Спасибо!


person Frank Vale    schedule 23.01.2010    source источник


Ответы (1)


Если я правильно понимаю, выход detailView уже подключен к PropertyEditViewController. Вы не хотите устанавливать для self.detailView значение nibView вручную, потому что вы фактически переопределяете detailView его родительским представлением. Просто отправьте -loadNibNamed: owner: options: и все будет в порядке.

person Costique    schedule 23.01.2010
comment
Из контроллера представления я попробовал [self.detailView loadNibNamed:@"DetailView" owner:self options:nil];, и он вышел с ошибкой, поскольку UIView не отвечает на -loadNibNamed: owner: options:. Что мне не хватает? Спасибо! - person Frank Vale; 23.01.2010
comment
Предполагая, что вы вызываете -loadNibNamed: owner: options: из метода контроллера (то есть self - это PropertyEditViewController), первый оператор в исходном сообщении является допустимым. Я думаю, вам не нужны второй и третий, потому что detailView уже настроен в IB. Вы можете заменить эти два оператора на NSLog (@% @, self.detailView), чтобы убедиться, что мы понимаем друг друга. - person Costique; 24.01.2010