2014-03-27 16 views
11

Ich hatte benutzerdefinierte Schaltfläche in meiner Navigationsleiste hinzugefügt. hier ist der Code jetzt mein Problem ist, dass ich in iOS7 bin Button Image mit Text sehen kann, während in iOS 7.1 das Bild nicht angezeigt wird nur Text angezeigt wird. This is iOS 7.1This is iOS 7Benutzerdefinierte Schaltfläche Bild nicht sichtbar in der Navigationsleiste 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]; 


} 

Antwort

3

statt es als Subview in navigationView Hinzufügen können Sie benutzerdefinierte Taste nach links oder rechts-Taste zuweisen und das funktioniert auch

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]; 

Diese funktionieren, aber Sie haben Fehler hier

[self.navigationController.navigationBar addSubview: backButtonView];

///// Ihr Code benutzerdefinierte Schaltfläche erstellen geht hier

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: Backbutton];

0

Benutzerdefinierte Schaltfläche erstellen und fügen Sie ihn in Ihre Linke Navigation Bar-Taste Element als benutzerdefinierte Ansicht wie folgt:

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; 
Verwandte Themen