【问题标题】:hide back button when tab bar controller is added in navigation controller在导航控制器中添加标签栏控制器时隐藏后退按钮
【发布时间】:2012-09-21 05:26:12
【问题描述】:

我有一个导航控制器 (navC) 和一个视图控制器 (ViewC),它是从根控制器推送的视图。我用代码隐藏了 ViewC 的后退按钮:

[[self navigationItem] setHidesBackButton:YES];

我在 ViewC 之后推送了标签栏控制器 (tabbarC)。在与 tabbarC 中的第一个选项卡关联的视图控制器中,我尝试使用代码隐藏后退按钮:

 [[[self tabBarController] navigationItem] setHidesBackButton:YES];

但是当我点击后退按钮时,它仍然可见;它消失了......任何人都可以帮我隐藏tabbarC中所有视图的后退按钮。

【问题讨论】:

  • 你在哪个方法中放置了代码....是viewDidLoad吗?
  • 使用 [[navC navigationItem] setHidesBackButton:YES];
  • @Spynet 我在 viewDidLoad 和 viewWillAppear 都试过了,但没有结果
  • 您是否以编程方式添加了标签栏视图控制器?
  • @Neo 是的,我已经以编程方式添加了它

标签: iphone objective-c uinavigationcontroller uitabbarcontroller


【解决方案1】:

在您推送到 tabbarviewcontroller 时将出现的第一个视图中设置此项

-(void)viewWillAppear:(BOOL)animated{
      [super viewWillAppear:animated];
      self.tabBarController.navigationItem.hidesBackButton=YES;
}

【讨论】:

  • 在 iOS 6.2 中,在这段代码之后(使用程序化 segue - 即performSegueWithIdentifier)我看到后退按钮处于非活动状态但仍然可见。事实上,这件事可能与您的导航堆栈和程序化 segues 有很大关系,所以在这种情况下要注意一点。我的建议是,如果使用 segue,请将 - setHidesBackButton 选择器调用放在源视图控制器的 - prepareForSegue 选择器中。
【解决方案2】:

在 ViewC 的 viewDidLoad 中这样做:

[self.navigationController.navigationItem setHidesBackButton:YES];

同样tab选中视图控制器的viewWillAppear方法

[self.navigationController.navigationItem setHidesBackButton:YES];

【讨论】:

    【解决方案3】:

    在您看来,只需写下这一行..它将隐藏返回按钮.. 测试

    -(void)viewWillAppear:(BOOL)animated
    {
        [self.navigationItem setHidesBackButton:YES];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2019-07-03
      • 2012-01-01
      相关资源
      最近更新 更多