导航栏隐藏在 iPhone sdk 的弹出视图控制器上

Posted

技术标签:

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

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

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

在弹出视图控制器上。

提前致谢。

【问题讨论】:

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

以上是关于导航栏隐藏在 iPhone sdk 的弹出视图控制器上的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给导航控制器内的弹出视图控制器

将带有可见导航栏的视图控制器弹出到带有隐藏导航栏的视图控制器时,带有 interactivePopGestureRecognizer 的黑色区域

当我在 iPhone 的导航栏上单击返回时,如何弹出到所需的视图控制器

弹出视图控制器离开堆栈而没有显示导航栏? [关闭]

将右 barbuttonitem 添加到导航控制器 iphone sdk 后视图向上移动

使用不跟随拇指的屏幕边缘平移手势识别器的弹出视图控制器