导航控制器上的自定义后退按钮未出现

Custom BackButton on NavigationController not appearing

我正在尝试在 UINavigationController 中使用自定义后退按钮,但没有显示图像。

代码如下:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.navigationBar.translucent = true
        self.navigationController!.view.backgroundColor = UIColor.clearColor()

        self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "Back-50")
        self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "Back-50")
        self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

我不确定这段代码出了什么问题。

您必须在目标 viewcontroller 中实现这些代码行,这意味着您将推送的控制器,因为您想要自定义返回项按钮,该按钮仅在您将 viewcontroller 推入时激活导航控制器堆栈。你的代码对我有用。

navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "Back-50"), style: .Plain, target: self, action: "back")

func back(){
    self.navigationController?.popViewControllerAnimated(true)
}

试试这个

    self.navigationItem.hidesBackButton = YES;
        UIButton *btnLeft=[UIButton buttonWithType:UIButtonTypeCustom];
        btnLeft.frame=CGRectMake(0, 0, 65, 40);
        [btnLeft addTarget:self action:@selector(onClickBackBarItem:) forControlEvents:UIControlEventTouchUpInside];
        [btnLeft setImage:[UIImage imageNamed:@"image_name"] forState:UIControlStateNormal];
        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btnLeft];

-(void)onClickBackBarItem:(id)sender
{
   // ** your stuff ** //
}

希望对您有所帮助

试试这个对我有用。

var BackButton : UIBarButtonItem = UIBarButtonItem(image: 
UIImage(named: "Back-50"), style: .Plain, target: self, action: "back")

self.navigationItem.leftBarButtonItem = BackButton

func back()
{
   // your backcontroller code here....
}

如果您只希望图像显示为后退按钮,则将 navigationBar 的 tintColor 设置为清除颜色,然后将基于图像的 UIBarButtonItem 设置为控制器 navigationItem 的 backBarButtonItem。

let backButton = UIBarButtonItem(image: UIImage(named: "back"), style: .Plain, target: self, action: "back")
self.navigationController?.navigationBar.tintColor = UIColor.clearColor()
self.navigationItem.backBarButtonItem = backButton

这将使默认后退按钮图像 (<) 不显示(实际上它出现了,但颜色清晰,所以不可见),只显示后退图像。

也许,您应该使用 UIAppearance。

像这样

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [[UINavigationBar appearance] setBackIndicatorImage: [UIImage imageNamed:@"icon-back"]];
    [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage: [UIImage imageNamed:@"icon-back"]];

    return YES;
}

在swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named: "")
    UINavigationBar.appearance().backIndicatorImage = UIImage(named: "")

    return true
}