在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)
})
}
}