Это предупреждение всем, кто пытается реализовать альбомную и портретную ориентацию с двумя представлениями в одном XIB (iOS 4 с Xcode 4). Основным недостатком наличия двух представлений в одном XIB - для меня - было то, что вы можете подключить только один объект UIOutlet в XIB к одному объекту UIOutlet в контроллере представления.
Так, например, если у вас есть XIB с представлением для альбомной ориентации и представлением для портретной ориентации, и оба представления содержат одни и те же объекты интерфейса в разных положениях (например, UILabel в альбомной ориентации и UILabel в портретной ориентации). Невозможно связать UILabel в портретном представлении и объект UILabel в альбомном представлении с одним объектом UILabel в контроллере представления одновременно.
Я нахожу это разочарованием, поскольку в документации iOS UIViewController (iOS 4.3) было предложено реализовать пользовательские альбомные и портретные представления, программно переключаясь между двумя представлениями при повороте экрана.
Потратив некоторое время на то, чтобы выяснить, как это сделать, я обнаружил, что к одному контроллеру представления можно подключить два разных представления, но вам необходимо иметь выходы для обоих представлений. Например, в моем контроллере представления у меня есть два объекта UILabel (один для подключения к UILabel в портретном представлении; один для подключения к UILabel в альбомном представлении). В моем коде каждый раз, когда я обновляю альбомную розетку, я также обновляю портретную альбомную ориентацию.
Не очень элегантно, но это работает, и поскольку это для простого представления с одним экраном, он не будет использовать слишком много памяти, чтобы дублировать все объекты пользовательского интерфейса в контроллере и представлениях. Я бы не стал создавать проект, который бы делал это снова, но это был достаточно хороший обходной путь для этого проекта.
person
Steve HHH
schedule
25.09.2011