我目前有两个视图控制器,一个CameraViewController
使用imagePicker拍照,一个PhotoInboxViewController
显示一个人收到的所有照片消息。 PhotoInboxViewController
以及我的根视图控制器也是Tab Bar Controller
。
当在CameraViewController
中显示imagePicker以及其后的图像预览屏幕时,我通过设置self.tabBarController.tabBar.hidden = YES
禁用TabBar。我的问题是,当再次显示PhotoInboxViewController
时(例如,如果用户取消拍照),我希望再次显示标签栏。在我的viewWillAppear
方法中,我有以下内容:
//In PhotoInboxViewController
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if ([[[self tabBarController] tabBar] isHidden]){
self.tabBarController.tabBar.hidden = NO;
}
}
在调试中,我看到
if
语句确实被评估为tabBar和isHidden
,因此也执行了下一行。但是,我的标签栏仍处于隐藏状态。我做错了什么?感谢您的帮助-谢谢!
最佳答案
您不需要隐藏标签栏。模态呈现时,您应该从全屏/根视图控制器呈现。在这种情况下,选项卡栏控制器(而不是视图控制器)位于选项卡之一中。这样可以使演示文稿正常工作,而不会产生任何奇怪的副作用。