Objective c 如何更改LeftBarbuttonite名称?
我想更改leftBarButton标题。我试过这个Objective c 如何更改LeftBarbuttonite名称?,objective-c,ios7,uinavigationcontroller,uinavigationitem,Objective C,Ios7,Uinavigationcontroller,Uinavigationitem,我想更改leftBarButton标题。我试过这个 UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil a
UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
[[self navigationItem] setLeftBarButtonItem:newBackButton];
但它带来的变化就像
但是我想要像这样
怎么可能呢?这可能对你有帮助
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backAction:)];
self.navigationItem.leftBarButtonItem = backBarButton;
在后退按钮上看不到任何箭头是完全正常的。这是因为您正在创建一个新的栏按钮,您可以设置它的标题和样式。但是您为条形按钮项设置的样式不会满足您的需要 我想您正在使用
UINavigationController
导航。如果是这种情况,您需要获取屏幕上显示的UINavigationController
对导航栏的引用。然后,您可以通过“着色颜色”属性更改其颜色。所以
[self.navigationController.navigationBar setTintColor:[UIColor redColor]];
会做你想做的事。这是我使用上面提到的代码获得的图像
如果您没有使用
UINavigationController
,最简单的解决方案是为已经有箭头的后退按钮提供图像 您应该设置backbarbuttonim
,而不是leftbarbuttonim
。请记住,不要在当前视图控制器(您希望它显示的位置)中设置它,而是在父视图控制器(此按钮将返回给您)中设置它。使用此代码并
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *backBtnImage = [UIImage imageNamed:@"BackBtn.png"] ;
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(goback) forControlEvents:UIControlEventTouchUpInside];
backBtn.frame = CGRectMake(0, 0, 54, 30);
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;
self.navigationItem.leftBarButtonItem = backButton;
对于返回,请使用此方法
-(void)goback
{
[self.navigationController popViewControllerAnimated:YES];
}
从正在推送下一个视图控制器(ViewController2)的视图控制器(ViewController1)中,需要设置BackBarButtonim
@implementation ViewController1
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStylePlain target:nil action:nil];
}
这对我有用
UIImage *image = [[UIImage imageNamed:@"btn_back.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(backAction:)];
self.navigationItem.leftBarButtonItem = button;
- (IBAction)backAction:(id)sender
{
MainMenuViewController *mainMenuViewController = [[MainMenuViewController alloc] init];
[self.navigationController pushViewController:mainMenuViewController animated:YES];
}
我真的不明白你的问题。@jcesar:你看到了箭头,它是默认的Backbarbuttonim。但在第二个视图中,它是“使用带有“
UIViewController
UINavigationItem
的backBarButtonItem
按钮,而是当另一个视图控制器被推到它的顶部时,它是堆栈中第二个最上面的按钮。