【问题标题】:using the default Navigation bar text使用默认导航栏文本
【发布时间】:2012-06-07 20:02:20
【问题描述】:

我正在使用情节提要并开发 iPhone 应用程序并使用导航控制器。

当我实现它时,我注意到它使用视图的名称而不是使用默认的“后退”文本,有没有办法强制它使用“后退”?

谢谢

【问题讨论】:

    标签: objective-c ios uinavigationcontroller storyboard uinavigationitem


    【解决方案1】:

    当您显示UINavigationController 时,大概是在应用程序的委托中,使应用程序的委托也成为导航控制器的委托。然后观察视图控制器被弹出和推送:

    AppController.h

    #import <UIKit/UIKit.h>
    
    @interface AppController.h : NSObject 
    <UIApplicationDelegate, UINavigationControllerDelegate> 
    {
        UIWindow *window;
        UINavigationController *viewController;
    }
    /* MARK: Interface Outlets */
    @property (nonatomic, retain) IBOutlet UIWindow *window;
    @property (nonatomic, retain) IBOutlet UINavigationController *viewController;
    @end
    

    AppController.h

    #import "AppController.h"
    
    @implementation AppController.h
    /* MARK: Init and Dealloc */
    - (void)dealloc {
        self.window = nil;
        self.viewController = nil;
    
        [super dealloc];
    }
    
    /* MARK: Interface Outlets */
    @synthesize window, viewController;
    
    /* MARK: Application Delegate */
    - (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        assert(self.window != nil);
        assert(self.viewController != nil);
    
        self.viewController.delegate = self;
    
        /* other initialization */
    
        [self.window makeKeyAndVisible];
    
        return YES;
    }
    
    /* MRK: Navigation Controller Delegate */
    - (void)navigationController:(UINavigationController *)navigationController 
          willShowViewController:(UIViewController *)vc 
                        animated:(BOOL)animated
    {
        UIBarButtonItem *myItem = /* initialize */;
    
        navigationController.topViewController.navigationItem.backBarButtonItem = nil;
        navigationController.topViewController.navigationItem.backBarButtonItem = myItem;
    }
    @end
    

    此外,您可以通过检查-[NSObject isKindOfClass:] 是否匹配所需的视图控制器来忽略自定义视图控制器。

    【讨论】:

      【解决方案2】:

      来自http://osmorphis.blogspot.com/2009/03/trapping-uinavigationbar-back-button.html

      您可以在标准后退按钮上更改的唯一内容是文本。默认情况下,这是控制器的标题。你可以用这样的代码来改变它:

      [self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStyleBordered target:nil action:nil]; 
      

      只需替换

      initWithTitle:@"New Title"
      

      initWithTitle:@"Back"
      

      【讨论】:

        【解决方案3】:

        在提问之前尝试搜索。

        似乎可以将以下代码添加到调用向下钻取的控制器中,即 master-detail 中的 master。

        UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
        self.navigationItem.backBarButtonItem = backButton;
        [backButton release];
        

        感谢 iPhoneGuy:iPhone Dev SDK

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-27
          • 2018-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-14
          • 1970-01-01
          相关资源
          最近更新 更多