Загрузка другого NIB в одно подвид UIVIEW

У меня простой вопрос, на который я не нашел ответа на всем сайте,

Один файл XIB с основным UIView,

в нем есть еще один UIView, подключенный к одному IBoutlet, поэтому я могу назначить его позже для загрузки представления из другого файла XIB. Это задание не работает ... оно остается пустым ...

@interface Subclass : UIViewController { 
        UIView *view1; 
}
@property (nonatomic,retain) IBOutlet UIView *view1;
@end

Я связал view1 с subview в файле xib в реализации в initWithNibName. Я загружаю другой файл XIB, использую его view и назначаю его view1. Тем не менее это не работает ...

detailControler = [[XibViewControler alloc] initWithNibName:@"XibViewControler" bundle:nil];
 //one aproach
[self.view1 addSubview: detailControler.view]; 
//another aproach
[self setView1:detailControler.view];

Если я программно добавляю подпредставление в [self.view addSubview: detailControler.view] и устанавливаю для него фрейм, он перейдет в полноэкранный режим и скроет исходное представление.

У меня также был другой подход, который не работал Как загружать несколько представлений при каждом нажатии кнопки при использовании UISegmentedVIew


person PartySoft    schedule 19.09.2011    source источник


Ответы (1)


Вот как я обычно настраиваю UIView внутри другого представления, хотя я не совсем уверен, что это лучше всего или что-то в этом роде:

if(newViewController == nil){
  newViewController = [[NewViewController alloc] initWithCoder:nil];
}
newViewController.view.autoresizingMask = UIViewAutoresizingNone;
if([newViewController.view superview] == nil){
  [view1 addSubview:newViewController.view];
}

Надеюсь, это поможет!

person msgambel    schedule 20.09.2011
comment
делая это с новым чистым проектом, это сработало, это просто не работает в моем проекте класса 70 ... по какой-то причине ... странно то, что я создал представление с нуля, как я сделал с новым проектом .. . - person PartySoft; 20.09.2011
comment
Это странно. По крайней мере, он работает с новым проектом! - person msgambel; 20.09.2011
comment
хорошо, я добавил это в основной проект, и он работает ... на самом деле это сработало с самого начала ... то, что он не делает, не ограничивает границы кадра [detailPatientController.view setFrame: CGRectMake (50, 50 , 100, 50)]; .. он игнорирует 100,50 .. но он не работает на 50,50 ... В отдельном проекте .. он фактически без проблем обрезал границы кадра .. Вы знаете, какой параметр я должен отключить или включить ? - person PartySoft; 20.09.2011
comment
Хорошо, я понимаю, в чем проблема ... фон UIImageView не обрезается по кадру ... для него установлено значение "Масштабировать по размеру" ... и он будет отображаться как исходный. Придется также переопределить его рамку :) - person PartySoft; 20.09.2011