Как я могу сделать анимированный переход на UISplitView?

Я просмотрел образец, сгенерированный xcode при создании нового приложения UISplitView на iPad, а также множество других руководств и документацию с сайта разработчиков Apple. Я не видел примера, когда используемый UISplitView не был корнем приложения. Это вообще возможно?

Что я пытаюсь выполнить: у меня есть UITableView для запуска, и после выбора элемента в списке я хотел бы отобразить разделенное представление с двумя разными наборами информации, основанными на выбранном элементе.

Мне любопытно, возможен ли такой тип реализации или просто не одобряется, и почему. Если это возможно, как мне реализовать и подключить UISplitView, чтобы он вел себя таким образом?

Изменить: я обновляю это тем, что у меня есть. Теперь я могу переключиться на свой UISplitView, хотя переход не анимирован. Как правильно переключиться на UISplitView, чтобы переход был анимирован?

Код для переключения прямо сейчас:

[appDelegate.window addSubview:appDelegate.splitViewController.view];
appDelegate.window.rootViewController = appDelegate.splitViewController; 

РЕДАКТИРОВАТЬ 2: В надежде поднять эту резервную копию, чтобы ее увидело больше людей, мне удалось переключиться с моего navigationController на мой splitViewController, но когда я добавляю кнопку, чтобы иметь возможность вернуться назад, ничего из того, что я делаю, не имеет значения, и я кажусь чтобы быть заблокированным. Я попытался выполнить обратное зеркальное отображение кода, чтобы переключиться на splitViewController, но это не повлияло, и у меня совершенно нет идей. Может кто-нибудь пролить некоторый свет на это?


person Karoly S    schedule 05.08.2011    source источник
comment
UISplitViewController — это контроллер представления, как и любой другой. Таким образом, вы можете создать его и использовать в любое время в своем приложении.   -  person onnoweb    schedule 05.08.2011
comment
Это имеет смысл, поэтому я был очень удивлен, когда не нашел примеров его интеграции. Думаю, я не очень хорошо понимаю SplitViews, не могли бы вы дать мне общее представление о том, как это реализовать? Мне нужны мой RootViewController и мой DetailViewController для двух возможных представлений, но это обычные VC. Где и как мне создать свой реальный SplitViewController?   -  person Karoly S    schedule 06.08.2011
comment
Я изменил заголовок вашего вопроса - надеюсь, он лучше показывает, что вы хотите. Если это неправильно, не стесняйтесь вернуться.   -  person Paŭlo Ebermann    schedule 14.08.2011


Ответы (3)


Вы всегда должны использовать SplitViewController в качестве rootViewController: Контроллер разделенного представления должен быть корневым представлением контроллер

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

person Victor K.    schedule 14.08.2011

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

person Felix Müller    schedule 15.08.2011

В вашем методе UITableView didSelectRowAtIndexPath у вас будет что-то вроде:

UISplitViewController *mySplitView = [[UISplitViewController alloc] init];
[self.navigationController pushViewController:mySplitView animated:YES];
[mySplitView release];

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

person onnoweb    schedule 05.08.2011
comment
Поэтому я объединил то, что вы сказали, с ответом на этот вопрос: stackoverflow.com/questions/2854840/. Казалось, что это скомпилировано, но когда я пытаюсь фактически выбрать строку, я получаю, что контроллеры разделенного представления не могут быть перемещены в ошибку контроллера навигации. Любые предложения о том, как обойти это? - person Karoly S; 08.08.2011
comment
Хорошо, я изменил структуру своего приложения, и у меня есть функциональность, которую я ищу, хотя она ведет себя не идеально, в основном, она не анимируется. Есть ли способ переключиться на UISplitView и анимировать изменение? - person Karoly S; 10.08.2011