Пользовательская кнопка Изображение не отображается на панели навигации iOS 7.1
Я добавил пользовательскую кнопку на панели навигации. вот код теперь моя проблема в том, что в iOS7 я могу видеть обратное изображение кнопки с текстом, в то время как в iOS 7.1 изображение не отображает только текст. ![This is iOS 7.1]()
![This is iOS 7]()
-(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];
}
Ответы
Ответ 1
Вместо того, чтобы добавлять его в виде subview в 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.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: BackButton];
Ответ 3
Создайте настраиваемую кнопку и добавьте ее в свой элемент левой кнопки навигации в качестве пользовательского представления следующим образом:
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;