2014-10-28 4 views
0

так что я унаследовал старый проект на работе, который разбит на тонну различных раскадровки. Хотя на самом деле это не слишком много хлопот, клиенту теперь нужна пользовательская анимация segue, которая идет от контроллера просмотра на раскадровке A до контроллера просмотра на раскадровке B, и я не могу понять это для жизни меня ,Как выполнить пользовательский segue через две раскадровки?

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

+0

Вы попробовали перетаскивание правого клика от Storyboard A до Storyboard B и нажатие анимации шоу? – alex

ответ

1

Вы не можете сделать это без использования трюк, потому что вы не можете подключить SEGUE между раскадровки. Вы можете создать экземпляр контроллера вручную в другой раскадровке, затем выполнить любую пользовательскую анимацию, которую вы хотите представить, или нажать ее в коде. Поскольку основная причина использования segue (в отличие от перехода на новый контроллер в коде) заключается в том, что вы можете видеть соединения между вашими контроллерами в раскадровке, в вашем случае нет смысла использовать segue.

Если вы действительно настаиваете на использовании segue, тогда вам нужно поставить «фиктивный» контроллер в свой первый раскадровки, к которому вы подключаете пользовательский segue. Код в этом сегменте отключает фиктивный контроллер для реального контроллера, с которым вы хотите перейти в другой раскадровки. Здесь вы можете найти ссылку на эту технику, http://spin.atomicobject.com/2014/03/06/multiple-ios-storyboards/.

+0

Спасибо за это! Я закончил тем, что не пошел с segue и просто сделал пользовательскую анимацию и отклонил текущий вид без анимации в конце блока завершения. – ImpurestClub

0

Найти ниже код для доступа к другой Раскадровка:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"storyboard_A_view_identifier"]) { 
     UIStoryboard *storyBoardB = [UIStoryboard storyboardWithName:@"storyBoardB" bundle:nil]; 
     UIViewController *anotherViewController = [storyBoardB instantiateViewControllerWithIdentifier:@"storyboard_B_view_identifier"]; 
     // use anotherViewController and perform custom animation on it 
    } 
} 
Смежные вопросы