我目前正在做一个项目,其中涉及ViewDeck by Inferis。
我希望创建Facebook风格的菜单界面。然而,对于deckController,我似乎不能让标题栏保持在本地而不是全局。
所以基本上,我有一个rootviewcontroller,它将一个登录视图控制器推送到堆栈上。没什么花哨的。但当我登录时,它需要将IIViewDeckController推送到堆栈上,但没有所有导航栏
它是如何编码的:
neighbourhoodViewController *nextViewController = [[neighbourhoodViewController alloc] initWithNibName:@"neighbourhoodViewController" bundle:nil];
menuViewController *leftViewController = [[menuViewController alloc] initWithNibName:@"menuViewController" bundle:nil];
IIViewDeckController* deckController = [[IIViewDeckController alloc] nitWithCenterViewController:nextViewController leftViewController:leftViewController];
deckController.leftSize = 100.0f;
[self.navigationController pushViewController:deckController animated:YES];输出截图如下:

正如您所看到的,菜单是“在视图控制器中”,但它需要在外面,因此导航栏应该与中间的TableViewController一起向右滑动。
我试图隐藏所有的导航栏,但似乎都不起作用。此外,我还尝试从应用程序委托启动它,因为这在示例中。它起作用了。但是,我需要从Login View Controller运行它。
Thnx
发布于 2013-05-22 21:21:14
你需要稍微调整一下你的结构。
将IIViewDeckController设置为您的应用程序的rootViewController,并将其centreController设置为您的UINavigationController。
让您的LoginViewController作为UINavigationController开头的topViewController,这样就可以开始显示Login视图。如果您不想在登录时看到NavigationBar,请在您的LoginViewController中添加以下内容:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}要在登录时阻止任何ViewDeck操作,请在ViewDeck的委派中执行以下操作:
- (BOOL)viewDeckController:(IIViewDeckController*)viewDeckController shouldOpenViewSide:(IIViewDeckSide)viewDeckSide {
UINavigationController *navController = (UINavigationController*)self.centerController;
if([[navController viewControllers] count] < 2) {
return NO;
}
return YES;
}显然,当用户成功登录时,您只需将您的“neighbourhoodViewController”推送到堆栈中。当他们注销时,弹出它再次关闭。
https://stackoverflow.com/questions/16692708
复制相似问题