首页 文章

改变UINavigationBar的后退按钮

提问于
浏览
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方法中,但之后没有任何按钮可见 .

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

谢谢!

3 回答

  • 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

    应用相同的代码

    -(void)viewDidAppear:(BOOL)animated
    {
    
    }
    
  • 0

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

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

相关问题