【问题标题】:iOS ViewDeck remove overall titlebariOS ViewDeck 移除整体标题栏
【发布时间】:2013-05-22 13:11:23
【问题描述】:

我目前正在从事一个涉及 Inferis 的 ViewDeck 的项目。

我正在寻找创建 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];

结果如下截图:

如您所见,菜单“在 viewcontroller 中”但它需要在外面,所以导航栏应该与中间的 TableViewController 一起向右滑动

我尝试隐藏所有导航栏,但似乎没有任何效果。我也尝试从应用程序委托启动它,因为这在示例中。有用。但是,我需要从登录视图控制器运行它。

谢谢

【问题讨论】:

    标签: ios objective-c viewdeck


    【解决方案1】:

    你需要稍微重新安排你的结构。

    使 IIViewDeckController 成为您应用的 rootViewController 并将其 centerController 设置为您的 UINavigationController。

    让你的 LoginViewController 一开始就成为你的 UINavigationController 的 topViewController,从而显示登录视图开始。 如果您不想在登录时看到 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”推送到堆栈上。当他们注销时,再次将其弹出。

    【讨论】:

      猜你喜欢
      • 2020-07-27
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2020-07-09
      • 2011-11-20
      • 1970-01-01
      相关资源
      最近更新 更多