Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          Yes! There is a way of using the backBarButton with a custom action. No, it’s not by overriding the backBarButton property of navigationItem. This is not an ugly solution with images that simulate the “Back”-button (arrow-shaped.) It’s possible to use the backBarButton for popping the current viewController as normal, but than with other animations such as UIViewAnimationTransitionCurlDown.

          Enough said, the solution is simple. You have to subclass your navigationController’s  popViewControllerAnimated:(BOOL)animated. So create a custom navigationController:

          customNavigationController.h

          #import
          @interface customNavigationController : UINavigationController {}
          @end

          And a custom “popViewControllerAnimated:(BOOL)animated”, this popViewControllerAnimated-function uses the “UIViewAnimationTransitionCurlDown” when popping from a SettingsTableView.

          customNavigationController.m

          #import "customNavigationController.h"
          #import "SettingsTableController.h"
           
          @implementation customNavigationController
           
          - (UIViewController *)popViewControllerAnimated:(BOOL)animated
          {
          if([[self.viewControllers lastObject] class] == [SettingsTableController class]){
           
          [UIView beginAnimations:nil context:NULL];
          [UIView setAnimationDuration: 1.00];
          [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown
          forView:self.view cache:NO];
           
          UIViewController *viewController = [super popViewControllerAnimated:NO];
           
          [UIView commitAnimations];
           
          return viewController;
          } else {
          return [super popViewControllerAnimated:animated];
          }
          }
          @end

          Use your custom navigationController in your appDelegate:

          customNavigationController *navigationController =
          [[customNavigationController alloc]
          initWithRootViewController:rootView];

          posted on 2010-11-13 23:12 seal 閱讀(624) 評論(0)  編輯  收藏 所屬分類: iPhone
          主站蜘蛛池模板: 江达县| 甘肃省| 耒阳市| 黄龙县| 慈利县| 汤原县| 吴桥县| 会宁县| 确山县| 萨嘎县| 方正县| 什邡市| 高陵县| 宁蒗| 东宁县| 惠安县| 方正县| 凉城县| 清流县| 肃宁县| 塔城市| 乌海市| 大港区| 周至县| 莱阳市| 南开区| 北海市| 邓州市| 沈阳市| 洛隆县| 海宁市| 乐东| 临高县| 同仁县| 濉溪县| 尼玛县| 定州市| 韶关市| 宜宾县| 台北县| 镶黄旗|