Ios 隐藏从UISearchDisplayController推送的视图控制器中的导航栏

Ios 隐藏从UISearchDisplayController推送的视图控制器中的导航栏,ios,objective-c,uiviewcontroller,uisearchbar,uisearchdisplaycontroller,Ios,Objective C,Uiviewcontroller,Uisearchbar,Uisearchdisplaycontroller,我在UINavigationController中有一个UIViewController(我们称之为VC0)VC0利用UISearchDisplayController在UITableView中显示搜索结果。用户从搜索结果中选择一个表格单元格后,它会推送另一个UIViewController(称之为VC1) 在VC0和VC1中,我已将navigationBarHidden设置为YES。但是,当我选择表格单元格并按下VC1时,我仍然可以看到VC1顶部的导航栏,其中有一个返回按钮,指向VC0 如何在

我在
UINavigationController
中有一个
UIViewController
(我们称之为VC0VC0利用
UISearchDisplayController
UITableView
中显示搜索结果。用户从搜索结果中选择一个表格单元格后,它会推送另一个
UIViewController
(称之为VC1

VC0VC1中,我已将
navigationBarHidden
设置为
YES
。但是,当我选择表格单元格并按下VC1时,我仍然可以看到VC1顶部的导航栏,其中有一个返回按钮,指向VC0

如何在VC1中永久隐藏导航栏

更新:

如果我在
视图中放置以下行,导航栏将消失:
,但它在隐藏之前仍然可见

self.navigationController.navigationBarHidden = YES;

但是如果我把它放在
viewdiload
viewwillshould:
,它就不工作了。有什么原因吗?

制作一个简单的视图控制器作为BaseViewController的名称。 并使您的VC0和VC1都源自BaseViewController。只需在BaseViewController中将
navigationBarHidden
设置为
YES

这将通过简单的一行代码适用于VC0和VC1

  • @interface BaseViewController:UIViewController

  • @接口VC0:BaseViewController

  • @接口VC1:BaseViewController

  • 像这样

    和BaseViewController的方法

     - (void)viewDidLoad
     {
        [super viewDidLoad];
        self.navigationController.navigationBarHidden=YES;
     }
    

    没有别的办法吗?我最好不要更改视图控制器的结构。然后您必须编写
    self.navigationController.navigationBarHidden=YES
    在每个viewControllers ViewWillDisplay方法中。它不起作用,我仍然可以在VC1中看到导航栏。是否要在两个viewControllers上隐藏导航栏?@VivekMolkar是。我可以在VC0中隐藏它,但不能在VC1中隐藏。您如何推动VC1?通过导航控制器按下Segue?@VivekMolkar nope<代码>[self.navigationController pushViewController:VC1动画:是]