`
修博龙泉
  • 浏览: 318697 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

UINavicationController

 
阅读更多
如果楼主想要使用UINavigationController中的view controller stack,并且还想要同时自定义push、pop的动画效果,基本上是不可能的。原因在于想要使用view controller stack,就无法躲开
pushViewController:animated:这个方法,而一旦使用pushViewController:animated:,UINavigationController就会强制将要推入的viewController的frame设为当前可视区域的frame,从而断绝一切想要自定义动画的后路.
自定义动画:
- (IBAction)btnClicked:(id)sender {
    //从下向上
//    SecondVC *vc = [[[SecondVC alloc] init] autorelease];
//    CATransition *transition = [CATransition animation];
//    transition.duration = 1;
//    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//    transition.type = kCATransitionPush;
//    transition.subtype = kCATransitionFromTop;
//    transition.delegate = self;
//    self.navigationController.navigationBarHidden = NO;
//    [self.navigationController pushViewController:vc animated:NO];
//    [self.navigationController.view.layer addAnimation:transition forKey:nil];
//    //立体翻转1
//    SecondVC *nextView=[[SecondVC alloc] init];
//    [UIView  beginAnimations:nil context:NULL];
//    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
//    [UIView setAnimationDuration:0.75];
//    [self.navigationController pushViewController:nextView animated:NO];
//    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
//    [UIView commitAnimations];
//    [nextView release];
    //立体翻转2
    [UIView  beginAnimations:nil context:NULL];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.75];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
    [UIView commitAnimations];
    
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDelay:0.375];
    [self.navigationController popViewControllerAnimated:NO];
    [UIView commitAnimations];
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics