-(void) setNavigationButtons:(NSString *)title{
UIImage *logoImage = [UIImage imageNamed:@"back-icon"];
UIButton *logoBackButton = [UIButton buttonWithType:UIButtonTypeCustom];
[logoBackButton setImage:logoImage forState:UIControlStateNormal];
logoBackButton.frame = CGRectMake(0.0, 0.0, 50, 50);
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:logoBackButton];
[logoBackButton addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchDown];
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[Constants Instance].whiteColor}];
self.navigationController.navigationBar.barTintColor = [Constants Instance].navigationTitleColor;
[self setNavigationTitle:title];
self.navigationItem.leftBarButtonItem = backBarButtonItem;
}
-(void)setNavigationTitle:(NSString *)title{
self.navigationItem.title = title;
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor whiteColor],
NSFontAttributeName:[UIFont fontWithName:@"Nexa Light" size:20]}];
}
- (IBAction)backAction:(id)sender {
[self.navigationController popViewControllerAnimated:YES];
}
但它不附加到左侧并且有边距。我希望它像上面的屏幕截图一样固定在左侧。我不想在该按钮上显示任何文本,例如返回等。
右键也发生了类似的情况。
编辑
这是结果:
如果我在该代码的末尾添加这一行,我会遇到更多问题。
self.navigationItem.rightBarButtonItem = backBarButtonItem;
为了也显示右键,它只显示右键但不显示左键。意味着我不能同时设置两个按钮。
最佳答案
隐藏真实导航栏并添加UIView
相反,它将作为 navigation bar
.并在其上添加两个按钮。您的 View 框架应为 (0,0,64,screenWidth)
.这对您来说会更容易,因为根据您的屏幕截图,您不需要此屏幕的后退按钮,因此您应该隐藏 navigation bar
对于这个屏幕,它会比定制真正的导航栏更容易!
关于ios - 在 IOS Objective c 应用程序中自定义导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40284931/