2010-09-15 3 views
0

У меня есть контроллер вида, который управляет представлением.UIView subview не меняет ориентацию

Я добавляю подкласс моего контроллера представления в качестве подвид окна, заменяющего другое представление.

Я запускаю ландшафтный режим на iPad.

Вид, по-видимому, не знает, что его в ландшафтном режиме. Его рама запуталась.

Есть ли что-то, что я могу/должен сделать, чтобы сказать, что его пейзаж и/или ориентация изменилась. Как это обычно происходит. Почему это не происходит?

Раньше у меня был контроллер вида в UITabBarController, и он отлично работал там.

ответ

0

Override:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return YES; 
} 
+0

Thats уже там. Это не проблема. – David

0

Ваш ViewController не получает события вращения, потому что вы не представившие ViewController, но добавили мнение ViewController в иерархии зрения.

Ваш контроллер панели вкладок ранее использовался для того, чтобы взять на себя ответственность пересылать события вращения контроллеру представления, которым он управляет, так он работал.

Я бы предположил, что замена окна из окна - плохая идея. Вместо этого у вас должен быть главный viewController, который принимает события вращения и затем заменяет вид в этом viewController на основе текущей ориентации. Подумайте о повторном обсуждении, прежде чем вводить код дальше.

+0

Вы предлагаете иметь собственный контроллер корневого представления и подкачки подкачки? Одним из видов является UISplitView, и это, похоже, не понравилось. Но, возможно, снова я не говорю об этом достаточно или пересылаю достаточно событий. Есть ли лучший способ переключения видов? – David

+0

Если вы используете splitViewController, я боюсь, что контроллер разделения должен всегда быть главным контроллером представления. События ротации не должны передаваться явно. Сообщения отправляются и отправляются внутри страны. Переключение взглядов после вращения не радует глаз. Пользовательский интерфейс неожиданно переключается, когда происходит поворот. Когда происходит поворот, просмотры должны быть ИЗМЕНИТЬ с помощью соответствующих масок авторезистировки. Но, если у вас есть такое требование, вы можете продолжить мое предложение + при условии, что вы не будете разделять представление в качестве подзаголовка, так как оно вызывает роторные события. –

0

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