您的位置:首页 > 产品设计 > UI/UE

UINavigationController 弹出新的UIViewController时,setNavigationBarHidden失效的问题

2016-01-28 10:04 381 查看
原文出处

http://stackoverflow.com/questions/2340399/keeping-uinavigationcontrollers-navigationbar-hidden-after-uisearchdisplaycontr

如果在UINavigationController中的某一个UIViewController中使用了UISearchDisplayController,那么当我们使用search功能时,会隐藏NavigationBar,使用完以后会再让NavigationBar出现。当我们从UISearchDisplayController的搜索结果中选中一个cell,来在UINavigationController显示中显示一个新的UIViewController时,在这个新的UIViewController中的viewDidLoad和viewWillAppear中,setNavigationBarHidden:YES 都会失效。原因就是在使用UISearchDisplayController的时候,它接管了NavigationBar显示与否的控制,使我们的设置失效。我在stackoverflow中搜了一下,有这样的一个解决办法:

-(void) hideNavBar {

if (self.navigationController.navigationBar.hidden == NO)

{

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

}

}

Then in the viewDidLoad method, I have the following:

[self performSelector:@selector(hideNavBar) withObject:nil afterDelay:0.0];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: