前面的例子中,我们开发了一个tab bar(选项卡栏)应用程序。
我们将导航控制器嵌入在tab bar控制器内。因此,当用户轻拍任一菜单项时,导航控制器切换到详细视图。
但是tab bar 在详细视图时,仍然占用了一些屏幕空间,我们需要隐藏tab bar,释放更多的屏幕空间。
1. UIViewController 类 的hidesBottomBarWhenPushed属性
在UIViewController 中有一个属性:hidesBottomBarWhenPushed, 它是一个Boolean 值,表示屏幕底部的toolbar 是否隐藏
当设置为YES 时,在Navigation 控制器内的视图控制器,会隐藏tab bar
2.仅需添加一行代码
在我们Tab Bar 应用程序中,我们仅需在prepareForSegue:方法中添加一行代码,设置RecipeDetailViewController的hidesBottomBarWhenPushed 属性为YES。
- ( void )prepareForSegue:( UIStoryboardSegue *)segue sender:( id )sender
{
if ([segue. identifier isEqualToString : @"showRecipeDetail" ]) {
NSIndexPath *indexPath = nil ;
RecipeDetailViewController *destViewController = segue. destinationViewController ;
if ([ self . searchDisplayController isActive ]) {
indexPath = [ self . searchDisplayController . searchResultsTableView indexPathForSelectedRow ];
destViewController. recipeName = [ searchResults objectAtIndex :indexPath. row ];
} else {
indexPath = [ self . tableView indexPathForSelectedRow ];
destViewController. recipeName = [ recipes objectAtIndex :indexPath. row ];
}
//Hide bottom tab bar in the detail view
destViewController. hidesBottomBarWhenPushed = YES ;
}
}