2

我有这段代码可以更改我的 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 方法中,但随后看不到任何按钮。

关于可能导致这种情况的任何想法?

谢谢!

4

3 回答 3

2

应用相同的代码

-(void)viewDidAppear:(BOOL)animated
{

}
于 2012-04-20T07:02:22.890 回答
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];

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

于 2012-04-20T07:13:16.733 回答
0

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

// Setup custom back button
self.navigationItem.hidesBackButton = YES;
于 2012-04-20T08:25:28.523 回答