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

iOS - What is the proper way to just display back button and no navigationBar?

可以使用 setNavigationBarHidden = YES 并通过在顶部添加 UIButton 来实现后退按钮行为来实现上述设计。但我想避免这种情况 hack/method.

是否可以在没有 navigationBar 的情况下将 leftBarButtonItems 用于 backButton ?

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

你甚至可以像

一样隐藏导航栏
 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];
}

leftBarButtonItems是Navigation item的属性,没有navigation bar是不能用的。因此,如果您不想使用导航栏,添加自定义按钮可能是可行的方法。

leftBarButtonItems 是一个只与导航栏一起使用的配件,如果你想用它就只与导航栏一起使用。

现在,如果您不想添加自定义按钮,只需使用以下代码使 UINavigationBar 透明即可。

[self.navigationBar setBackgroundImage:[UIImage new]
                         forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;