Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在第一次查看时隐藏UINavigationBar_Iphone_Ios_Uinavigationcontroller_Uinavigationbar - Fatal编程技术网

Iphone 如何在第一次查看时隐藏UINavigationBar

Iphone 如何在第一次查看时隐藏UINavigationBar,iphone,ios,uinavigationcontroller,uinavigationbar,Iphone,Ios,Uinavigationcontroller,Uinavigationbar,我想隐藏UINavigationBar,它只在第一次查看时自动加载导航项目,我想知道如何才能做到这一点 我试过这样做 //RootViewController.m #import "mydelegate.h" //-- this is where the view controller is initialized //... - (void)viewDidLoad { [super viewDidLoad]; navigationController *navControl

我想隐藏UINavigationBar,它只在第一次查看时自动加载导航项目,我想知道如何才能做到这一点

我试过这样做

//RootViewController.m

#import "mydelegate.h" //-- this is where the view controller is initialized

//...

- (void)viewDidLoad
{
    [super viewDidLoad];
    navigationController *navController = [[navigationController alloc] init];
    [navigationController setNavigationBarHidden:YES animated:animated];
}

//.....
但是,我会出错,因为我想我没有正确地从委托文件调用navigationController,或者无法像调用另一个类的方法那样调用它


非常感谢您的帮助。

您是否正在访问UINavigationController的正确实例? 您可以通过self.navigationController从添加到其堆栈中的任何UIViewController访问UINavigationController

否则,这可能会有所帮助:
这里有几件事不对

  • 您应该使用
    self.navigationController
    访问显示视图控制器的导航控制器。您的代码片段正在创建新的UINavigationController;把酒吧藏起来不会给你带来什么
  • 与其在
    viewDidLoad
    中隐藏导航栏,不如将其隐藏在
    viewwillbeen:
    中。您可以在
    viewDidLoad
    中隐藏导航栏,当视图最初显示时,导航栏将被隐藏,但如果您按下显示导航栏的另一个视图并单击“后退”按钮,导航栏将保持可见 您的
    视图将出现:
    应如下所示:

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self.navigationController setNavigationBarHidden:YES animated:animated];
    }
    
    并且
    视图将出现:
    在其他视图控制器中,您在该导航控制器上按下的方法应适当地显示或隐藏导航栏。

    试试这个答案。它为我解决了问题


    导航栏也有问题。我可以让它消失,但我不能让它在需要的时候重现。此链接解释了如何解决此问题,只需在视图中打开它就会出现,而在视图中关闭它就会消失。

    Ah Right!这起作用了:)谢谢,我需要阅读如何将内容添加到导航堆栈中。[self.navigationController设置NavigationBarHidden:是动画:否];没问题。推荐阅读苹果文档的概述和任务部分:干杯,我现在就来看看。。这是我第一次开始ios开发的时候,我从apple docs上读了很多东西,但当时我还不太懂。。所以也许现在是回去刷新的好时机。这行不通。在调用super的
    viewwillbeen
    方法之前,您需要交换行并将导航栏设置为隐藏。我不知道该告诉您什么。这就是我在我的应用程序中使用它的方式,它运行良好。您好,欢迎来到Stackoverflow。请阅读指导原则以获得正确答案:。其中一个规则是向链接添加上下文,而不仅仅是粘贴链接。您应该提供一个有效的答案,而不需要用户导航到另一端,但您可能希望这样做以获得答案的更多详细信息。当链接因某种原因失效时,这就成了一个更大的问题。