iOS - 只显示后退按钮而不显示导航栏的正确方法是啥?
Posted
技术标签:
【中文标题】iOS - 只显示后退按钮而不显示导航栏的正确方法是啥?【英文标题】: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 ?
这种设计的推荐和正确方法是什么?
【问题讨论】:
【参考方案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];
【讨论】:
以上是关于iOS - 只显示后退按钮而不显示导航栏的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章