在iOS7之前,开发人员为了寻求自己定义Navigation Controller的Push/Pop动画,仅仅能受限于子类化一个UINavigationController,或是用自己定义的动画去覆盖它。可是随着iOS7的到来,Apple针对开发人员推出了新的工具,以更灵活地方式管理UIViewController切换。

我把终于的Demo稍做改动,算是找了一个合适的应用场景,另外配上几张美图,拉拉人气

尽管是Swift的Demo,可是转成Objective-C相当easy。

终于效果预览:

自己定义导航栏的Push/Pop动画

为了在基于UINavigationController下做自己定义的动画切换,先建立一个简单的project,这个project的rootViewController是一个UINavigationController,UINavigationController的rootViewController是一个简单的UIViewController(称之为主页面),通过这个UIViewController上的一个Button能进入到下一个UIViewController中(称之为详情页面),我们先在主页面的ViewController上实现两个协议:UINavigationControllerDelegate和, )

, screenHeight)

containerView.addSubview(toViewController.view)

} , screenHeight)

containerView.insertSubview(toViewController.view, belowSubview: fromViewController.view)

}

, usingSpringWithDamping: ,

options: , )

print(self.transitingView)

}, completion: {completed in

self.transitionContext!.finishInteractiveTransition()

self.transitionContext!.completeTransition(true)

})

}

}