【问题标题】:iOS - What is the proper way to just display back button and no navigationBar?iOS - 只显示后退按钮而不显示导航栏的正确方法是什么?
【发布时间】:2015-09-03 04:29:17
【问题描述】:
上述设计可以使用 setNavigationBarHidden = YES 并通过在顶部添加 UIButton 来实现 backButton 行为。但我想避免这种黑客/方法。
我是否仍然可以在没有 navigationBar 的情况下将 leftBarButtonItems 用于 backButton ?
这种设计的推荐和正确方法是什么?
【问题讨论】:
标签:
ios
uinavigationcontroller
uinavigationbar
uibarbuttonitem
uinavigationitem
【解决方案1】:
leftBarButtonItems 是 UINavigation item 的属性,所以你不能在没有导航栏的情况下使用它。因此,如果您不想使用导航栏添加自定义按钮,可能是一种方法。
【解决方案2】:
leftBarButtonItems 是一个只能和导航栏一起使用的配件,如果你想用它就只能和导航栏一起使用。
现在,如果您不想添加自定义按钮,只需使用以下代码使 UINavigationBar 透明即可。
[self.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;
【解决方案3】:
你甚至可以在不隐藏导航栏的情况下做到这一点
UIButton *backBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 5, 60, 20)];
[backBtn setImage:[UIImage imageNamed:@"navigationBar_back_image"] forState:UIControlStateNormal]; // use your image or setText of backBtn "<"
[backBtn addTarget:self action:@selector(pushBackBtnTpd:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;
self.navigationItem.leftBarButtonItem = backBarButtonItem;
-(IBAction)pushBackBtnTpd:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}