底部栏项目未出现在presentViewController中

时间:2014-09-01 20:14:05

标签: ios iphone uiviewcontroller storyboard presentviewcontroller

在我的应用程序中,我动态加载一组图像,当用户点击图像时,它会打开一个新的ViewController(MediaPreview),打开图像的大预览。

我按如下方式创建MediaPreview控制器:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
mediaPreviewVC = (MediaPreviewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MediaPreviewViewController"];
mediaPreviewVC.selectedImageURL = [NSString stringWithFormat:@"%@",gestureRecognizer.view.tag];
navigationController = [[UINavigationController alloc] initWithRootViewController:mediaPreviewVC];
[self presentViewController:navigationController animated:YES completion:nil];

这会创建一个如下所示的ViewController:

enter image description here

但是,底部导航栏似乎缺失,我的故事板中列出了这一点:

enter image description here

如何确保底部导航栏按钮出现在我的视图中?

1 个答案:

答案 0 :(得分:1)

您正在整个布料中创建导航控制器:

navigationController = [[UINavigationController alloc] initWithRootViewController:mediaPreviewVC];

alloc-init意味着"让我成为一个全新的,独立的,通用的"。因此,navigationController 故事板中的导航控制器。它是一个全新的,不同的导航控制器。因此,故事板中的内容无关紧要。

如果您想从故事板中获取导航控制器,则需要从故事板中实例化导航控制器 。或者,如果您有意这样做,那么除非您明确地将其显示,否则底栏不会显示,因为默认情况下它不是(它很明显如何{{ 3}})。

但是在那种情况下,如果您打算将其从故事板中删除,那么您的整个代码可能是错误的,因为故事板中的那个可能已经具有正确的根视图控制器好。