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

时间:2015-04-30 04:52:35

标签: ios objective-c uiviewcontroller uisearchbar uisearchdisplaycontroller

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

VC0 VC1 中,我已将YES设置为viewDidAppear:。但是,当我选择表格单元格并按下 VC1 时,我仍会看到 VC1 顶部的导航栏,后面的按钮指向 VC0

如何永久隐藏 VC1 中的导航栏?

更新

如果我在self.navigationController.navigationBarHidden = YES; 中添加以下行,导航栏就会消失,但在隐藏之前它仍然可见。

viewDidLoad

但如果我将其放在viewWillAppear:{{}}中,则无效。有什么理由吗?

1 个答案:

答案 0 :(得分:0)

将一个简单的 ViewController 作为名称BaseViewController。 并使你的VC0和VC1都是从BaseViewController派生的。只需在BaseViewController中将navigationBarHidden设置为YES

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

  1. @interface BaseViewController : UIViewController

  2. @interface VC0 : BaseViewController

  3. @interface VC1 : BaseViewController

  4. 像这样

    和BaseViewController的方法

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