在我的故事板中查看以下设置:
我在第一个视图控制器中有两个容器视图,一个用于显示帖子的主视图,另一个用于帖子视图滑出以显示的菜单。
我想让菜单栏滑开like described here,我已经工作但没有导航栏。我尝试过使用Editor>将导航控制器嵌入到包含子项的视图控制器(有效,但当菜单滑出it still showed for the menu which doesn't look as intended时)以及当我为帖子视图控制器执行此操作时,它会因此错误而崩溃:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UINavigationController setContainingViewController:]:无法识别的选择器发送到实例0x8e81c60'
有谁知道如何实现这种效果?
答案 0 :(得分:0)
我认为这篇文章与Doug Smith,Why does hiding my status bar completely break my simple animation?有关。您的问题与只有一个嵌入在导航控制器中的控制器无关。它崩溃了,因为你试图在UINavigationController上调用setContainingViewController而不是PostsViewController,它是(在你添加导航控制器之前)embed segue的destinationViewController。由于导航控制器现在是destinationViewController,您需要将prepareForSegue中的代码更改为:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Posts"]) {
UINavigationController *nav = (UINavigationController *)segue.destinationViewController;
PostsViewController *postsViewController = (PostsViewController *)nav.topViewController;
postsViewController.containingViewController = self;
}
if ([segue.identifier isEqualToString:@"Menu"]) {
MenuViewController *menuViewController = (MenuViewController *)segue.destinationViewController;
menuViewController.containingViewController = self;
}
}