在我的应用程序中,我动态加载一组图像,当用户点击图像时,它会打开一个新的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:
但是,底部导航栏似乎缺失,我的故事板中列出了这一点:
如何确保底部导航栏按钮出现在我的视图中?
答案 0 :(得分:1)
您正在整个布料中创建导航控制器:
navigationController = [[UINavigationController alloc] initWithRootViewController:mediaPreviewVC];
alloc-init
意味着"让我成为一个全新的,独立的,通用的"。因此,navigationController
不故事板中的导航控制器。它是一个全新的,不同的导航控制器。因此,故事板中的内容无关紧要。
如果您想从故事板中获取导航控制器,则需要从故事板中实例化导航控制器 。或者,如果您有意这样做,那么除非您明确地将其显示,否则底栏不会显示,因为默认情况下它不是(它很明显如何{{ 3}})。
但是在那种情况下,如果您打算将其从故事板中删除,那么您的整个代码可能是错误的,因为故事板中的那个可能已经具有正确的根视图控制器好。