2014-01-02 5 views
0

Новинка для ios, есть экран приборной панели, с множеством UIObjects, поэтому создан диспетчер пейзажного вида в раскадровке. Теперь я хочу, чтобы текущий диспетчер просмотра портрета и контроллер ландшафтного зрения, зависит от ориентации.Представляем два UIViewControllers, один для пейзажа и один для портрета?

+0

Лучше использовать тот же контроллер вида – Abhishek

+0

Использовать автозапуск. –

+0

Если вы не хотите использовать Autolayout, используйте функцию didRotateFromInterfaceOrientation для изменения layout.Set кадров и других пользовательских интерфейсов в этом методе. – cjd

ответ

0

Существует что-то называется Autolayout и Ограничений для представления одного ViewController для обеих ориентаций

сдерживающих немного продвинутых. Попытайтесь приобрести некоторые знания об Autoresizingmasks и применить Autolayout к своим представлениям.

Autolayout может уменьшить количество кода.

Здесь было прекрасно объяснено. Проверьте это http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

0

Ofcourse вы можете это сделать, используя следующий код

if (self.interfaceOrientation == (UIInterfaceOrientationLandscapeLeft) || self.interfaceOrientation == (UIInterfaceOrientationLandscapeRight)) 
{ 
    //Hide the portrait view and show the Landscape view 
     [self.Portraitview setHidden:YES]; 
     [self.Landscapeview setHidden:NO]; 
} 
else if (self.interfaceOrientation == UIInterfaceOrientationPortrait) 
{ 
    //Show the portrait view and Hide the Landscape view 
     [self.Portraitview setHidden:NO]; 
     [self.Landscapeview setHidden:YES]; 
} 
0

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

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