Figured out my problem. The source code is really incorrect, since the UINavigationController works and interacts with managed UIViewControllers. (Annoyingly, like what I was doing in the OP can be found as a solution in older SO posts.)
, ( ):
- (void) perform {
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
[UIView transitionFromView:src.view
toView:dst.view
duration:1
options:UIViewAnimationOptionTransitionFlipFromBottom
completion:nil];
[UIView transitionFromView:src.navigationItem.titleView
toView:dst.navigationItem.titleView
duration:1
options:UIViewAnimationOptionTransitionFlipFromBottom
completion:nil];
[src.navigationController pushViewController:dst animated:NO];
}
Quibble: , , . :
[UIView transitionFromView:src.navigationController.view
toView:dst.navigationController.view
, 1) destination navigationController , nav, 2) , ! ,
- , , , ... , ... , ( UINavigationItem), . , . (docs)