0

Я рассматриваю реализацию некоторых пользовательских переходов IOS7. Для example these here.Пользовательские данные IOS7 Transition, передающие данные контроллеру View View

При нажатии кнопки в этом примере ниже выполняется:

-(void)showNewController:(id)sender{ 

    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:[NSBundle mainBundle]]; 
    UIViewController* controller = [storyboard instantiateViewControllerWithIdentifier:@"PresentedViewController"]; 

    if(sender == self.button1){ 
     self.animationController = [[ZoomAnimationController alloc] init]; 
    }else{ 
     self.animationController = [[DropAnimationController alloc] init]; 
    } 

    controller.transitioningDelegate = self; 
    [self presentViewController:controller animated:YES completion:nil]; 
} 

Вопрос
Я пытаюсь понять, правильное место, чтобы передать информацию на новый UIViewController. В качестве примера можно сказать, что я пытаюсь передать UIImage в новый (будет) представленный контроллер представления.

Как правило, я бы выполнил это в методе prepareForSegue, но поскольку это не является тем, что было бы правильным способом передачи данных.

Я мог бы просто добавить в качестве примера следующее:

controller.passingImage = self.imageToPass; 

Будет ли это правильный процесс, чтобы следовать при работе с пользовательскими переходами в IOS7?

+1

Если вы хотите, чтобы иметь возможность использовать переданную переменную в ViewDidLoad :, передать его перед вами настоящее. В противном случае лучше передать его в блок завершения, чтобы пользовательский интерфейс был более плавным. Фактический путь прохождения контроллера .passingImage = self.imageToPass; похоже – Jack

+0

@JackWu - благодарю вас за подтверждение – StuartM

ответ

1

Способ настройки контроллеров просмотра не изменяется при использовании новых пользовательских анимированных переходов в iOS 7. Таким образом, вы все равно настроите контроллер представления (включая настройку перехода) в prepareForSegue, если вы используете раскадровки.

См. Следующий пример кода для примеров пользовательских анимированных переходов с использованием раскадровки. Это реализация примерного кода для WSDN Session 218: пользовательские переходы с использованием контроллеров View. Посмотрите на SOLViewController.m, чтобы начать.

https://github.com/soleares/SOLPresentingFun

+0

Спасибо. когда вы создаете segue от одного контроллера к следующему, он запрашивает значение Push/Model/custom, которое я выбрал первоначально, и мой переход не был запущен. Изменив его обратно, чтобы использовать presentViewController вместо perforSegueWith ... он работал, как ожидалось? – StuartM

+0

Вы хотели бы использовать push или modal segue. Если вы используете пользовательский сегмент, вам необходимо реализовать пользовательский сегмент, который вам не нужен. Модаль эквивалентен вызову presentViewController: анимированный: и Push эквивалентен вызову pushViewController: анимированный. – Jesse

+0

FYI push не работает, он просто делает push segue как обычно, но модальный делает мой пользовательский переход, не уверен, что это нормально? – StuartM

Смежные вопросы