iOS - 只显示后退按钮而没有导航栏的正确方法是什么?

时间:2015-09-03 04:29:18

标签: ios uinavigationcontroller uinavigationbar uibarbuttonitem uinavigationitem

enter image description here

可以使用setNavigationBarHidden = YES以及在顶部为backButton行为添加UIButton来实现上述设计。但我想避免这种黑客/方法。

是否有可能在没有navigationBar的情况下仍然可以将leftBarButtonItem用于backButton?

这种设计的推荐和正确方法是什么?

3 个答案:

答案 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;