首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS ViewDeck删除整个标题栏

iOS ViewDeck删除整个标题栏
EN

Stack Overflow用户
提问于 2013-05-22 21:11:24
回答 1查看 660关注 0票数 1

我目前正在做一个项目,其中涉及ViewDeck by Inferis。

我希望创建Facebook风格的菜单界面。然而,对于deckController,我似乎不能让标题栏保持在本地而不是全局。

所以基本上,我有一个rootviewcontroller,它将一个登录视图控制器推送到堆栈上。没什么花哨的。但当我登录时,它需要将IIViewDeckController推送到堆栈上,但没有所有导航栏

它是如何编码的:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-22 21:21:14

你需要稍微调整一下你的结构。

将IIViewDeckController设置为您的应用程序的rootViewController,并将其centreController设置为您的UINavigationController。

让您的LoginViewController作为UINavigationController开头的topViewController,这样就可以开始显示Login视图。如果您不想在登录时看到NavigationBar,请在您的LoginViewController中添加以下内容:

代码语言:javascript
复制
-(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的委派中执行以下操作:

代码语言:javascript
复制
- (BOOL)viewDeckController:(IIViewDeckController*)viewDeckController shouldOpenViewSide:(IIViewDeckSide)viewDeckSide {
    UINavigationController *navController = (UINavigationController*)self.centerController;

    if([[navController viewControllers] count] < 2) {
        return NO;
    }

    return YES;
}

显然,当用户成功登录时,您只需将您的“neighbourhoodViewController”推送到堆栈中。当他们注销时,弹出它再次关闭。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16692708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档