UISplitViewController проблемы с IOS 5.1 - PullRequest
2 голосов
/ 09 марта 2012

У меня проблема,

Я программирую с Monotouch 5.2.8 для IOS 5.1.

Но поскольку IOS 5.1 обновляет мой iPad, он конфигурирует UISplitViewController, так что он пристыкован слевасторона вместо представленной как поповер.

Он работает с IOS 5.0, но в 5.1 я получил эту проблему.

Вот исходный код для моего UISplitViewController:

splitViewController = new UISplitViewController ();
splitViewController.WeakDelegate = detailViewController;                
splitViewController.ViewControllers = new UIViewController[] {
     navigationController,
     detailViewController                   
};

Ответы [ 2 ]

5 голосов
/ 09 марта 2012

Из примечаний к выпуску iOS 5.1 SDK от Apple:

В 5.1 класс UISplitViewController принимает скользящую презентацию стиль при представлении левого вида (ранее виден только в почте). Этот стиль используется, когда презентация инициируется существующий элемент кнопки панели, предоставляемый методами делегата или проведите жестом в правильном представлении. Дополнительного принятия API нет требуется, чтобы получить это поведение, и все существующие API, в том числе экземпляра UIPopoverController, предоставленного делегатом, будет продолжайте работать как прежде. Если жест не может быть поддержан в вашем приложение, установите свойство presentWithGesture для вашего разделенного представления контроллер в НЕТ, чтобы отключить жест. Однако отключение Жест не рекомендуется, потому что его использование сохраняет последовательного пользователя опыт работы во всех приложениях.

Здесь (требуется регистрация).

UPDATE:

Из того, что я понимаю выше, мы можем поцеловать прощальный внешний вид главного контроллера на прощание в iOS 5.1.

Единственный способ увидеть «старый» внешний вид - это реализовать собственный UIPopoverController и использовать метод делегата ShouldHideViewController. К счастью, в MonoTouch этот метод доступен как свойство в классе UISplitViewController, что немного упрощает задачу.

Хотя я получаю странное поведение. С iOS SDK 5.1 на моем Mac и iOS 5.1 на моем iPad; на устройстве я получаю «скользящий» внешний вид, а на симуляторе - «старый» внешний вид поповера. Это с MonoTouch 5.2.4, который является последней стабильной версией. Кроме того, он не содержит PresentsWithGesture свойства. Я попытался установить его значение в false с помощью сообщений MonoTouch.ObjCRuntime, но безуспешно. Селектор продолжает возвращать истину. Поэтому я не могу отключить жест смахивания.

Даже попытался создать свой собственный UIPopoverController и назначить его в качестве мастера в контроллере разделения, чтобы посмотреть, что произойдет. Не работает, потому что UIPopoverController не является UIViewController ...

Некоторая полезная информация в этом вопросе для ObjC.

2 голосов
/ 24 июля 2012

Оказывается, вы можете отключить presentsWithGesture в делегате приложения, но после того, как контроллеры представления были представлены, его нельзя изменить.

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

...