搜索显示控制器如何隐藏导航栏?

Mic*_*all 3 iphone uinavigationbar uinavigationcontroller uisearchdisplaycontroller

当您进入搜索显示控制器处理的搜索栏时,它会向上滑动视图并向上推导航栏.这很容易做到,但是,当您单击搜索结果并在导航控制器的堆栈上按下新视图时,导航栏将从右侧滑入视图!

这是怎么做到的?如果您只是将导航栏设置为隐藏或显示,则会立即发生.我无法弄清楚它是如何隐藏在堆栈中的一个视图控制器中的!

非常感谢,

迈克尔

Ale*_*lds 8

您可以设置导航栏的过渡动画.有关-setNavigationBarHidden:animated:详细信息,请参阅

如果您需要在每个视图控制器的基础上执行此操作,只需覆盖视图控制器-viewDidAppear:-viewWillDisappear:方法,例如:

- (void) viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

当此视图控制器被推到导航堆栈顶部时,上面将隐藏导航栏,并在弹出视图控制器时显示导航栏.

您可以随时调用-setNavigationBarHidden:animated:,但这两种方法对于应用大量UI更改非常有用.