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
          主站蜘蛛池模板: 馆陶县| 观塘区| 南京市| 营口市| 左云县| 新乡县| 澄江县| 高平市| 洪泽县| 罗平县| 武山县| 满洲里市| 宣恩县| 平江县| 邵阳市| 鹿邑县| 丰城市| 临海市| 同江市| 东山县| 肥乡县| 大姚县| 南召县| 和顺县| 陕西省| 嫩江县| 嵩明县| 涟水县| 德昌县| 万荣县| 长汀县| 彭州市| 旬邑县| 尚义县| 桓台县| 恩平市| 类乌齐县| 信丰县| 靖州| 新晃| 临汾市|