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 閱讀(629) 評論(0)  編輯  收藏 所屬分類: iPhone
          主站蜘蛛池模板: 芜湖市| 乌拉特后旗| 临海市| 绥江县| 永昌县| 梁山县| 庆城县| 卓资县| 河南省| 固原市| 循化| 壤塘县| 平谷区| 鄂尔多斯市| 上高县| 吴旗县| 沾益县| 正安县| 青川县| 嘉黎县| 辰溪县| 闵行区| 临漳县| 融水| 屯门区| 南溪县| 七台河市| 苏尼特右旗| 普格县| 阜新市| 松潘县| 达尔| 威海市| 镇雄县| 西盟| 齐齐哈尔市| 云浮市| 高雄市| 新闻| 南投县| 甘孜|