{"action":"created","issue":{"url":"https://api.github.com/repos/JakeLin/IBAnimatable/issues/202","repository_url":"https://api.github.com/repos/JakeLin/IBAnimatable","labels_url":"https://api.github.com/repos/JakeLin/IBAnimatable/issues/202/labels{/name}","comments_url":"https://api.github.com/repos/JakeLin/IBAnimatable/issues/202/comments","events_url":"https://api.github.com/repos/JakeLin/IBAnimatable/issues/202/events","html_url":"https://github.com/JakeLin/IBAnimatable/pull/202","id":154077016,"number":202,"title":"Makes AnimatableNavigationController configurable after init","user":{"login":"tbaranes","id":1402212,"avatar_url":"https://avatars.githubusercontent.com/u/1402212?v=3","gravatar_id":"","url":"https://api.github.com/users/tbaranes","html_url":"https://github.com/tbaranes","followers_url":"https://api.github.com/users/tbaranes/followers","following_url":"https://api.github.com/users/tbaranes/following{/other_user}","gists_url":"https://api.github.com/users/tbaranes/gists{/gist_id}","starred_url":"https://api.github.com/users/tbaranes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbaranes/subscriptions","organizations_url":"https://api.github.com/users/tbaranes/orgs","repos_url":"https://api.github.com/users/tbaranes/repos","events_url":"https://api.github.com/users/tbaranes/events{/privacy}","received_events_url":"https://api.github.com/users/tbaranes/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-05-10T18:39:50Z","updated_at":"2016-05-10T23:25:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/JakeLin/IBAnimatable/pulls/202","html_url":"https://github.com/JakeLin/IBAnimatable/pull/202","diff_url":"https://github.com/JakeLin/IBAnimatable/pull/202.diff","patch_url":"https://github.com/JakeLin/IBAnimatable/pull/202.patch"},"body":"The `Navigator` will be create again with the new parameters if we change the animation type, the duration, or the interactive gesture. That can be useful in case that we are using only one navigation controller but want to customise the animation.. between two push / pop. If the animation is set to nil, then the custom navigation is completely reset and back to the default behaviour.\r\n\r\nIt wasn't what I was looking at first, but I'm pretty sure that can be pretty useful in a lot of cases. I'm just wondering, if there any reason that we create custom segues for Present / Dismiss but not Push / pop?"},"comment":{"url":"https://api.github.com/repos/JakeLin/IBAnimatable/issues/comments/218320747","html_url":"https://github.com/JakeLin/IBAnimatable/pull/202#issuecomment-218320747","issue_url":"https://api.github.com/repos/JakeLin/IBAnimatable/issues/202","id":218320747,"user":{"login":"JakeLin","id":573856,"avatar_url":"https://avatars.githubusercontent.com/u/573856?v=3","gravatar_id":"","url":"https://api.github.com/users/JakeLin","html_url":"https://github.com/JakeLin","followers_url":"https://api.github.com/users/JakeLin/followers","following_url":"https://api.github.com/users/JakeLin/following{/other_user}","gists_url":"https://api.github.com/users/JakeLin/gists{/gist_id}","starred_url":"https://api.github.com/users/JakeLin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JakeLin/subscriptions","organizations_url":"https://api.github.com/users/JakeLin/orgs","repos_url":"https://api.github.com/users/JakeLin/repos","events_url":"https://api.github.com/users/JakeLin/events{/privacy}","received_events_url":"https://api.github.com/users/JakeLin/received_events","type":"User","site_admin":false},"created_at":"2016-05-10T23:25:09Z","updated_at":"2016-05-10T23:25:09Z","body":"@tbaranes Good idea to make it configurable after `init` 👍 , The reason why we don't have Push / Pop custom segues is in most of cases, all `Push`s within the same one `UINavigationController` should have the same transition animation. If we change it, it will impact on the others, it maybe not what the user wants. \r\n\r\nFor example, VC1 pushs to VC2 using `Fade` animation, and if VC2 pushs to VC3 using `Slide` animation, then VC3 pops to VC2 is `Slide` (what the user expected), but VC2 pops to VC1 is also `Slide` not 'Fade` because `UINavigationController.delegate` has been changed to `SlideAnimator` not `FadeAnimator`. I think that's not the user wants.\r\n\r\nThat maybe an Apple's architure issue, or intentionally, they want to have consistent animations within the same `UINavigationController`. If we support `***PushSegue`s, I don't know how to fix this scenario, but if the user uses code, they can fix it by using Apple default way like overriding `func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? ` and returns the corresponding animator based on the scenario. \r\n\r\nTherefore, to not confuse the user when they configure Push / Pop transition animations in Interface Builder, we don't support `***PushSegue`, if the user wants to change the animation in code, they can still use the transition animators in `IBAnimatable` and override `func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? `"}}