Ios UINavigationBar故障

Ios UINavigationBar故障,ios,uinavigationbar,rightbarbuttonitem,backbarbuttonitem,Ios,Uinavigationbar,Rightbarbuttonitem,Backbarbuttonitem,在我的应用程序中,我在NavigationController中使用自定义UINavigationBar和自定义UIBarButtonims。我的自定义导航栏看起来不错,但是当我想放置我自己的BackBarButtonim和RightBarButtonim时,它出错了 在使用PushViewController方法之后,安装我自己的BackbarButtonim根本不起作用。我使用以下代码: UIButton *home = [UIButton buttonWithType:UIButt

在我的应用程序中,我在NavigationController中使用自定义UINavigationBar和自定义UIBarButtonims。我的自定义导航栏看起来不错,但是当我想放置我自己的BackBarButtonim和RightBarButtonim时,它出错了

在使用PushViewController方法之后,安装我自己的BackbarButtonim根本不起作用。我使用以下代码:

    UIButton *home = [UIButton buttonWithType:UIButtonTypeCustom];  
    UIImage *homeImage = [UIImage imageNamed:@"Topbarback"];

    [home setBackgroundImage:homeImage forState:UIControlStateNormal];  

    home.frame = CGRectMake(0, 0, 51, 30);  
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc]  
                                     initWithCustomView:home];  


    [self.navigationItem setBackBarButtonItem:backButton];
我也有我自己的巴布托教派。我可以在导航栏上找到它,但它没有调用我想要的方法。这是我的代码:

    UIButton *home = [UIButton buttonWithType:UIButtonTypeCustom];  
    UIImage *homeImage = [UIImage imageNamed:@"Topbarback"];

    [home setBackgroundImage:homeImage forState:UIControlStateNormal];  

    home.frame = CGRectMake(0, 0, 51, 30);  
    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]  
                                     initWithCustomView:home];  
    // self.navigationItem.backBarButtonItem = cancelButton;  

    [self.navigationItem setBackBarButtonItem:cancelButton];
在网上找了几个小时的解决方案却没有结果后,我希望你们能帮助我

谢谢

编辑:抱歉,上一期发布的代码错误:

UIButton *home2 = [UIButton buttonWithType:UIButtonTypeCustom];  
[home2 setTitle:@"Sort" forState:UIControlStateNormal];
[home2.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:15]];

UIImage *homeImage2 = [UIImage imageNamed:@"Topbarbutton"];

[home2 setBackgroundImage:homeImage2 forState:UIControlStateNormal];  

home2.frame = CGRectMake(0, 0, 77, 30);  
UIBarButtonItem *cancelButton2 = [[UIBarButtonItem alloc]  
                                 initWithCustomView:home2];
[cancelButton2 setTarget:self];
[cancelButton2 setAction:@selector(sorteren)];



self.navigationItem.rightBarButtonItem = cancelButton2;

嗯,看来你想在底部工具栏添加一个按钮?这就是你可以做到的:

UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithTitle:@"Title" target:self action:@selector(myButtonClicked:)];
    [toolbar setItems:[NSArray arrayWithObjects:myButton, nil]];
您在UIViewController上设置的BackbarButtonim有一个缺点,但当该视图可见时,它不会显示,只有当该视图是要返回的视图时,它才会显示

反布托主义 导航栏上需要后退按钮时要使用的栏按钮项。 @财产经济学,保留UIBarButtonItem*backBarButtonItem 讨论 当此导航项位于堆栈顶部项的正下方时,导航控制器将从此导航项派生导航栏的“后退”按钮。当此属性为nil时,导航项使用其title属性中的值来创建适当的后退按钮。如果要为“后退”按钮指定自定义图像或标题,可以将自定义标题或图像的自定义栏按钮项指定给此属性。配置工具栏按钮项目时,不要为其指定自定义视图;导航项仍然会忽略“back bar”按钮中的自定义视图。 此属性的默认值为零

对于未被调用的方法,您需要设置要调用的@selector

编辑 请按后退按钮 不要创建UIButton,直接使用UIBarButton。 下面是我如何创建一个Backbarbuttonim

UIBarButtonItem *bbi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Maison.png"]
                                                        style:UIBarButtonItemStylePlain
                                                       target:nil
                                                       action:nil];
self.navigationItem.backBarButtonItem = bbi;
[bbi release], bbi = nil;

如果我正确了解情况,导航栏会在根视图控制器中正确显示leftBarButton和rightBarButton,直到您按下另一个视图控制器?我知道它只会在该视图不可返回时显示,但它不会显示。随意的蓝色BackburbuttonItem是可见的,但不是我定制的barBackButtonItem。关于第二个问题:我发布了错误的代码。正如你所看到的,它现在就在那里,我调用了一个选择器,但它不起作用。@JelleAges第二个问题是,你能添加你现在使用的方法吗calling@JelleAges我指的是这个方法:分类法
UIBarButtonItem *bbi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Maison.png"]
                                                        style:UIBarButtonItemStylePlain
                                                       target:nil
                                                       action:nil];
self.navigationItem.backBarButtonItem = bbi;
[bbi release], bbi = nil;