2014-03-27 51 views
11

我在導航欄上添加了自定義按鈕。這裏是代碼現在我的問題是,在iOS7中,我能夠看到帶有文本的按鈕圖像,而在iOS 7.1中,圖像不僅僅顯示正在顯示的文本。 This is iOS 7.1This is iOS 7自定義按鈕圖像在導航欄上不可見iOS 7.1

-(void)addBackButton{ 

    self.navigationItem.hidesBackButton = YES; 

    [backButtonView removeFromSuperview]; 

    if (backButtonView) { 
     [backButtonView release]; 
     backButtonView = nil; 
    } 

    backButtonView = [[UIView alloc] initWithFrame:CGRectMake(0,6,70,30)]; 

    NSString *strText = @"Back"; 

    btnBack = [[UIButton alloc] initWithFrame:CGRectMake(2,0, 70, 31)]; 

    [btnBack setTitle:strText forState:UIControlStateNormal]; 
    btnBack.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:17]; 
    btnBack.titleLabel.textColor = IOS7ColorBtnBackText; 
    [btnBack setImage:[UIImage imageNamed:@"Left_Arrow.png"] forState:UIControlStateNormal]; 

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

    [backButtonView addSubview:btnBack]; 
    [btnBack release]; 

     [self.navigationController.navigationBar addSubview:backButtonView]; 


} 

回答

3

而是在navigationView將其添加爲子視圖,你可以指定自定義按鈕,向左或向右按​​鈕,這也適用

UIButton *backbtn=[[UIButton alloc]initWithFrame:CGRectMake(20,5,42, 42)]; 
    [backbtn setImage:[UIImage imageNamed:@"arrow.png"] forState:UIControlStateNormal]; 
    [backbtn setTitle:@"Login" forState:UIControlStateNormal]; 
    [backbtn addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *barbtn=[[UIBarButtonItem alloc]initWithCustomView:backbtn]; 
    self.navigationItem.leftBarButtonItem=barbtn; 
2
[self.navigationItem setHidesBackButton:YES]; 

該做的工作,但你在這裏做錯誤

[self.navigationController.navigationBar addSubview:backButtonView]。

/////你的代碼來創建自定義按鈕放在這裏

self.navigationItem.leftBarButtonItem = [[的UIBarButtonItem頁頭] initWithCustomView:後退按鈕]。

0

創建自定義按鈕,然後在您的導航左側欄按鈕項目添加它作爲一個定製視圖如下:

let btnShowMenu = UIButton() 
let image: UIImage = UIImage(named: "requiredImageName")! 
btnShowMenu.setImage(image, for: UIControlState.normal) 
btnShowMenu.frame = CGRect(x: 0, y: 0, width: 15, height: 15) 
btnShowMenu.addTarget(self, action: #selector(addAnAction(_:)), for: UIControlEvents.touchUpInside) 
let customBarItem = UIBarButtonItem(customView: btnShowMenu) 
self.navigationItem.leftBarButtonItem = customBarItem;