可以使用setNavigationBarHidden = YES以及在顶部为backButton行为添加UIButton来实现上述设计。但我想避免这种黑客/方法。
是否有可能在没有navigationBar的情况下仍然可以将leftBarButtonItem用于backButton?
这种设计的推荐和正确方法是什么?
答案 0 :(得分:1)
leftBarButtonItems是UINavigation项目的属性,因此如果没有导航栏,则无法使用它。所以可能如果你不想使用导航栏添加自定义按钮就可以了。
答案 1 :(得分:0)
您甚至可以在不隐藏
之类的导航栏的情况下执行此操作 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];
}
答案 2 :(得分:0)
leftBarButtonItems是一个仅用于导航栏的附件,如果你想使用它,你只会在导航栏中使用它。
现在,如果您不想添加自定义按钮,请使用以下代码使UINavigationBar
透明。
[self.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;