【问题标题】:Navigation bar gets hide on pop view controller in iPhone sdk导航栏隐藏在 iPhone sdk 的弹出视图控制器上
【发布时间】:2013-09-22 18:55:27
【问题描述】:

我正在 iPhone 中开发导航基础应用程序,我在应用程序委托中隐藏整个项目的导航栏,并在我需要的特定视图控制器上显示。因此,当我从这个 xyz 控制器导航栏弹出时,我在 xyz 视图控制器中取消隐藏导航栏隐藏在弹出视图控制器的动画上。下面我附上了这种奇怪行为的屏幕截图。

在推送视图控制器后的实际图像。

在弹出视图控制器上。

提前致谢。

【问题讨论】:

  • 试试这个.. 在调用 poptoviewcontroller 之前输入这一行。 [self.navigationCtronller.navigationBar setHidden:YES];
  • 可能你把它隐藏在viewDidLoad中,试试viewDidAppear
  • 也许他的意思是 setHidden:NO ?
  • 实际上,您为所有视图控制器使用一个导航控制器。因此,当您在单个视图控制器中隐藏/显示导航栏时,它将在所有控制器中隐藏/显示它。所以你需要在你需要的地方显示一个导航栏,并在视图控制器的 viewWillDisappear 方法作为@@karthika 回答时再次隐藏它。
  • 请确保您没有犯与here解释相同的错误

标签: iphone ios objective-c uinavigationbar


【解决方案1】:

在 XYZ viewController 中,

- (void)viewWillDisappear:(BOOL)animated
{
    self.navigationController.navigationBarHidden = NO;
}

【讨论】:

    【解决方案2】:

    如果您取消隐藏任何控制器的导航栏,那么如果您不隐藏它,它将显示在所有应用程序中。因此,如果您只想在屏幕中显示,那么在 viewWillApper 中,将其取消隐藏并在 viewWillDisapper 中使其隐藏。

    -(void)viewWillAppear:(BOOL)animated
    {
        self.navigationController.navigationBarHidden = FALSE;
        [super viewWillAppear:animated];
    }
    -(void)viewWillDisappear:(BOOL)animated
    {
        self.navigationController.navigationBarHidden = TRUE;
        [super viewWillDisappear:animated];
    }
    

    希望这会对你有所帮助。

    【讨论】:

    • 对不起,这没有帮助,我为整个项目设置了导航栏,但它不起作用。任何我做错的建议。
    • 你在 xyx 控制器的 viewwilldisapper 方法中做什么?
    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2014-12-09
    • 2014-06-06
    • 2017-02-11
    • 1970-01-01
    相关资源
    最近更新 更多