【问题标题】:iOS UINavigationControlleriOS UINavigationController
【发布时间】:2012-12-10 13:54:28
【问题描述】:

我在使用导航控制器时遇到问题。 我的程序布置在我有一个开始屏幕的位置(不在导航控制器中),然后当您按下按钮时,它会将您发送到导航控制器和新视图。

有没有办法使用返回按钮从导航控制器返回主屏幕。

或 如果我将开始屏幕作为导航控制器的根目录,是否有办法隐藏视图中的顶部栏。

我最初没有包含开始屏幕的原因是因为我不想在屏幕上显示导航栏。

谢谢。

【问题讨论】:

  • 是的,您可以隐藏导航栏,只需将此代码放在主屏幕的 viewDidLoad 方法中或您想要隐藏它的开始屏幕中..

标签: iphone ios xcode


【解决方案1】:

要隐藏UINavigationBar,然后在开始屏幕viewController 的viewWillAppear: 方法中使用波纹管..

[self.navigationController setNavigationBarHidden:YES]; 

或

[self.navigationController setNavigationBarHidden:YES animated:YES];

并且您可以使用以下代码返回上一个视图以及主屏幕或父视图...

-(IBAction)yourButton_Clicked:(id)sender{

    [self.navigationController popViewControllerAnimated:YES];//// For back to Previous view
  //  [self.navigationController popToRootViewControllerAnimated:YES]; // For Back to home screen or parent view

}

【讨论】:

    【解决方案2】:

    当你想在 ant 视图中喜欢这个时,有一个非常简单的方法可以隐藏 UINavigationBar :-

    [self.navigationController setNavigationBarHidden:YES];
    

    并且在您想要显示它的视图中,只需像这样取消隐藏它:-

    [self.navigationController setNavigationBarHidden:NO];
    

    【讨论】:

      【解决方案3】:

      您可以在所有屏幕中使用导航栏。但是对于您不想显示的屏幕,只需使用隐藏属性作为导航栏。该屏幕不会在顶部显示导航栏。

      [[self navigationController] setNavigationBarHidden:YES animated:YES];
      

      它会解决你的问题。

      【讨论】:

        【解决方案4】:
           - (void) viewWillAppear:(BOOL)animated{
        
            [self.navigationController setNavigationBarHidden:YES animated:animated];
        
                 [super viewWillAppear:animated];
         }
        
        - (void) viewWillDisappear:(BOOL)animated{
        
            [self.navigationController setNavigationBarHidden:NO animated:animated];
        
        [super viewWillDisappear:animated];
        }
        

        通过在您的主屏幕上实现此功能,您可以隐藏顶部栏

        【讨论】:

          【解决方案5】:

          如果您使用情节提要,您可以创建一个 UIButton 并以模态方式链接视图。

          还可以查看 https://stackoverflow.com/a/8348527/401787 在视图控制器之间导航。

          【讨论】:

            【解决方案6】:

            其实你的要求还不是很清楚。 但是要隐藏您可以使用的导航控制器,

            self.navigationController.navigationBarHidden=YES;
            

            您还可以将自定义按钮添加到导航栏。

            UIBarButtonItem *leftBtn=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonSystemItemAction target:self action:@selector(backBtnClicked:)];
                self.navigationItem.leftBarButtonItem=leftBtn;
            

            您可以在backBtnClicked: 方法中修正您的要求。 你也可以导航到你的根级视图控制器。

            【讨论】:

              【解决方案7】:

              你可以使用隐藏导航栏

              self.navigationController.navigationBarHidden = YES;
              

              将开始屏幕作为子视图添加到导航的根视图控制器。

              [self.view addSubview:startScreen.view]
              

              稍后通过[startScreen.view removFromSuperview] 将其删除并将navigationBarHidden 标志设置为NO。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-04-11
                • 2014-02-09
                • 2012-06-22
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多