改变UINavigationBar的后退按钮

时间:2012-04-20 06:56:48

标签: iphone uinavigationcontroller uinavigationbar uinavigationitem

我有这段代码可以改变我的UINavigationBar的后退按钮

// Set the custom back button
UIImage *buttonImage = [UIImage imageNamed:@"backag.png"];

//create the button and assign the image
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:buttonImage forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"selback.png"] forState:UIControlStateHighlighted]; 
button.adjustsImageWhenDisabled = NO;


//set the frame of the button to the size of the image (see note below)
button.frame = CGRectMake(0, 0, 30, 30);

[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];

//create a UIBarButtonItem with the button as a custom view
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = customBarItem;

// Cleanup
[customBarItem release];

如果我把它放在viewDidLoad方法中,它可以正常工作。但是,当我加载下一个视图时,旧样式按钮会显示出来。为了解决这个问题,我尝试将此代码放在下一个视图的viewDidLoad方法中,但是没有按钮可见。

关于可能导致此问题的任何想法?

谢谢!

3 个答案:

答案 0 :(得分:2)

中应用相同的代码
-(void)viewDidAppear:(BOOL)animated
{

}

答案 1 :(得分:1)

我在两个视图中都使用了tis代码并且工作正常......

//在两个视图的viewDidLoad方法中添加以下代码...

UIButton *leftButton1 = [UIButton buttonWithType:UIButtonTypeCustom];    
[leftButton1 setImage:[UIImage imageNamed:@"Viewone.png"] forState:UIControlStateNormal];    
leftButton1.frame = CGRectMake(0, 0, 30, 30);
[leftButton1 addTarget:self action:@selector(yourclickevent) forControlEvents:UIControlEventTouchUpInside];        
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton1];
[leftButton1 release];

UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];    
[leftButton setImage:[UIImage imageNamed:@"ViewSecond.png"] forState:UIControlStateNormal];    
leftButton.frame = CGRectMake(0, 0, 30, 30);
[leftButton addTarget:self action:@selector(yourclickevent) forControlEvents:UIControlEventTouchUpInside];        
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton];
[leftButton release];

希望,这会帮助你......享受..

答案 2 :(得分:0)

您需要确保在navigationItem上设置hidesBackButton属性:

// Setup custom back button
self.navigationItem.hidesBackButton = YES;