Примеры контроллера контейнера

Может ли кто-нибудь указать мне на хорошие примеры создания контроллера пользовательского вида в качестве контроллера просмотра контейнеров? Единственная документация, которую я могу найти, - это пара абзацев в Справочник класса UIViewController. Я чувствую, что мне нужно немного больше информации, чем это, и пример реализации будет приятным. Google вообще ничего не обнаружил.

Меня особенно интересует метод:

transitionFromViewController:toViewController:duration:options:animations:completion:

Ответ 2

В дополнение к сеансовому видео WWDC Сессия 102 - Реализация UIViewController Containment, о которой уже упоминалось в гиперкрипте, Apple WWDC 2012 "Эволюция контроллеров просмотра в iOS" также охватывает этот раздел, а примерный код является частью примера кода:

https://developer.apple.com/devcenter/download.action?path=/wwdc_2012/wwdc_2012_sample_code/wwdc_2012_session_code.dmg

Здесь также есть пример: https://github.com/toolmanGitHub/stackedViewControllers

Ответ 3

- (void)viewDidLoad{
    [super viewDidLoad];

    // I put self in a Navigation VC so we can use its right navigationbar 
    // item for triggering the transition
    self.navigationItem.rightBarButtonItem = 
     [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                                                    target:self 
                                                    action:@selector(button:)] 
                                                                  autorelease];

    // create test1 and test2 instance (subclass UIViewController and 
    // also need to define their own nibs)
    vc1 = [[test1 alloc]initWithNibName:@"test1" bundle:nil];
    vc2 = [[test2 alloc]initWithNibName:@"test2" bundle:nil];

    //add to the container vc which is self    
    [self addChildViewController:vc1];
    [self addChildViewController:vc2];

    //the entry view (will be removed from it superview later by the api)
    [self.view addSubview:vc1.view];
}

этот IBAction запускает переход между двумя VC:

-(IBAction)button:(id)sender {
    [self transitionFromViewController:vc1 
                      toViewController:vc2 
                              duration:0.5    
                               options:UIViewAnimationOptionTransitionCurlDown 
                            animations:nil 
                            completion:nil];
}

Ответ 6

Не знаю, является ли это "хорошим" примером, но вы можете получить бесплатный Container ViewController из https://bitbucket.org/javieralonso/jaacordeonviewcontroller/overview

Это полный контроллер представления контейнера метафорического аккордеона

Ответ 7

Это мой любимый (iOS7-готовый) учебник/примеры по этому вопросу (все три имеют исходный код на github):

Просмотр содержимого контроллера

Пользовательский переход контроллера контроллера контейнера

Интерактивные пользовательские проверки контроллера контейнера

И тогда, конечно, Apple предлагает полную рецензию на эту тему, которую я считаю бесценной:

Создание настраиваемых контроллеров просмотра контейнеров