2013-06-05 4 views
0

У меня есть один xib в портретном виде и один в альбомной ориентации. Я меняю XIB в ротации, как это:Изменить вид с помощью xib

[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@_landscape", NSStringFromClass([self class])] 
    owner: self 
    options: nil]; 

Это работает нормально, но если я открываю один вид как подвид в текущем виде, то она исчезает. Например, при нажатии любой кнопки я добавляю один вид (например, popover) в текущем виде, но в подпункте вращения он исчезает. Как я могу решить эту проблему?

Любая помощь приветствуется.

+0

Я предполагаю, что ур не добавляет вид на поворот, что означает, что у и у у вас есть два разных вида вращения, поэтому, если вы добавляете любой другой вид, так как subview у вас должен добавить вид дважды один для пейзажа и один для potrait.ru так ? – Kasaname

ответ

0

Вам нужно сделать недвижимость для этого вида, и когда вы выполняете ротацию, вам нужно добавить один и тот же вид в верхней части остальной части, просто используйте функцию addSubview функции UIView.

0

Вместо того, чтобы изменять виды для разных режимов, используйте функцию autoresizing.It позволит вам работать с одиночным видом autoResize при вращении. Вот прекрасный пример, который вы можете узнать.

AutoResizing

0

Я думаю, что это не очень хороший подход. Вы должны взять один UIViewController с XIB. Теперь возьмите две точки зрения (один для ландшафта, а другой для портрета соединить его с outlets) вне зрения ViewController «s, и во время вращения

yourCurrentView = landscapeView/portraitView; 
[self.view addSubview:yourCurrentView]; 

и установить его [self.view sendSubviewToBack:yourCurrentView]; // потому, что когда-либо просмотреть добавлены динамически на себя. вид остается сверху, теперь ваш просмотр, который был добавлен, всегда отображается в каждом режиме.

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

Смежные вопросы