#ipad #objective_c #ios #iphone
В моем проекте пока стоит стандартный переход от сцены к сцене при push. А мне задумалось сделать что-то поинтереснее. Как это можно реализовать? У меня в основе стоит Navigation Controller. И кстати когда я пытался сделать переход типа modal - симулятор прекращал работу приложения. Ну и хочется сделать что-то поинтереснее чем четыре модальных варианта. Заранее благодарен за помощь )
Ответы
Ответ 1
Вот вам история в картинках: 1) Начинаете с того, что добавляете новый класс: 2) Делаете его подклассом UIStoryboardSegue, называете его, как хотите: 3) Добавляете в получившийся .m-метод метод perform: #import "CustomSegue.h" #import@implementation CustomSegue - (void)perform { UIViewController *sourceViewController = (UIViewController *)[self sourceViewController]; UIViewController *destinationController = (UIViewController *)[self destinationViewController]; CATransition* transition = [CATransition animation]; transition.duration = .25; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade transition.subtype = kCATransitionFromTop; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom [sourceViewController.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [sourceViewController.navigationController pushViewController:destinationController animated:NO]; } @end 4) Идете в Storyboard. Удерживая Control, тянете от одного контроллера к другому мышь - отпускаете, выбираете custom: 5) Указываете в свойствах этой Segue, что её класс - CustomSegue. 6) Добавляете в проект фреймворк QuartzCore (если он ещё не добавлен). 7) Пробуете разные способы анимации через изменение опций в методе perform. Удачи!
Комментариев нет:
Отправить комментарий