Ios 导航控制器上的自定义BackButton未出现

Ios 导航控制器上的自定义BackButton未出现,ios,swift,uibarbuttonitem,Ios,Swift,Uibarbuttonitem,我正在尝试使用UINavigationController中的自定义后退按钮,但图像未显示 代码如下: self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) self.navigationController?.navigationBar.shadowImage = UIImage() self.navigationContr

我正在尝试使用
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按入导航控制器堆栈时才处于活动状态。您的代码适用于我。

您必须在目标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 ** //
}
愿这对你有所帮助

试试这个

    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....
}

试试这个.它对我有用

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设置为“清除颜色”,然后将基于图像的UIBarButtonim设置为控制器navigationItem的BackBarButtonim

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

这将生成默认的后退按钮图像(如果只希望图像显示为后退按钮,请将导航栏的tintColor设置为clear color,然后将基于图像的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;
}
迅速地

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

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

    return true
}

也许,你应该用你的外表

像这样

@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;
}
迅速地

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

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

    return true
}


您希望该按钮出现在哪个视图控制器上?除了根视图控制器@A-live之外的所有控制器似乎都能工作。是的,真的很困惑到底出了什么问题。@A-live您是否试图设置一个完全不同的后退按钮或在默认后退按钮旁边添加一个图像?后退指示符号图像用于显示要显示的图像BackButton侧边您希望该按钮出现在哪个视图控制器上?除了根视图控制器@A-live之外的所有控制器似乎都能正常工作。是的,真的很困惑到底出了什么问题。@A-live是否尝试设置一个完全不同的后退按钮或在默认后退按钮旁边添加一个图像?使用了后退指示符号图像要在backButtonI旁边显示图像,我对IOS环境实际上是新的,我可以要swift代码吗?我对IOS环境实际上是新的,我可以要swift代码吗?这应该为主视图控制器或遍历视图控制器添加吗?谢谢pradeep。我尝试了你的代码,现在出现了后退按钮图像。但是另一个按钮图像(如图中所示)也同时出现。在您附加的图像中,它不清楚实际的后退按钮图像是什么。您可以指定它的实际显示方式以及您希望它的实际显示方式吗?这应该添加到主视图控制器和所有遍历的视图控制器中。其美妙之处在于,它仅在启用视图控制器时使用在导航流中位于顶部视图控制器的正下方。它与LeftBarButtonim不同。当此视图控制器的navigationItem位于导航堆栈中最顶部视图控制器的正下方时使用它。查看图像,似乎显示了默认的<按钮。您可以通过将tintColor设置为clearColor来隐藏它,就像我看到的一样在我的回答中,如果这有效,请接受我的回答,以便其他人可以从中受益。应为主视图控制器或遍历视图控制器添加此选项?谢谢pradeep。我尝试了您的代码,现在显示了后退按钮图像。但另一个按钮图像(如所述图像)也同时出现。在您附加的图像中,它不清楚实际的后退按钮图像是什么。您可以指定它的实际显示方式以及您希望它的实际显示方式吗?这应该添加到主视图控制器和所有遍历的视图控制器中。其美妙之处在于,它仅在启用视图控制器时使用在导航流中位于顶部视图控制器的正下方。它与LeftBarButtonim不同。当此视图控制器的navigationItem位于导航堆栈中最顶部视图控制器的正下方时使用它。查看图像,似乎显示了默认的<按钮。您可以通过将tintColor设置为clearColor来隐藏它,就像我看到的一样在我的回答中,如果这有效,请接受我的回答,以便其他人可以从中受益