【问题标题】: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];
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-06
          • 1970-01-01
          • 2013-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多