0

我发布了一个没有回应的相关问题,但在这里我会不那么狭窄。基本上,我正在使用一段开源代码来实现一个 facebook 风格的幻灯片来显示类型视图。其实现依赖于一种模式,其中初始滑动视图控制器是应用程序窗口启动时的根视​​图控制器。然后它允许每个视图控制器通过这个方便的方法获得对该滑动视图控制器的引用:

- (ECSlidingViewController *)slidingViewController
{
  UIViewController *viewController = self.parentViewController;
  while (!(viewController == nil || [viewController isKindOfClass:[ECSlidingViewController class]])) {
    viewController = viewController.parentViewController;
  }

  return (ECSlidingViewController *)viewController;
}

我想这就是我的问题所在。我想为我以模态方式呈现的视图控制器提供这种侧滑式菜单。但是模态呈现的视图控制器为它的父视图控制器返回 null。因此,当我尝试获取对该根视图控制器(初始滑动视图控制器)的引用时,我做不到。如果我推动视图控制器,它可以工作,但这不是我想要的应用程序的流程。我认为如果我可以将此模态视图控制器添加为呈现视图控制器的子级,它将起作用。但是当我尝试这样做时,我遇到了一个异常,我正在模态地呈现一个已经处于活动状态的视图控制器。谁能建议如何解决这个问题?

编辑:这是我正在尝试做的事情的一个例子。

4

2 回答 2

0

从我们的讨论中,可以推断它是一个基于视图的应用程序。因此,您必须根据要求从父视图中添加和删除子视图,为此您将创建一个跟踪视图的类。此外,您可以将其添加为子视图,而不是模态显示视图,例如:-

[self.view addSubView:viewController.view];

你可以用bringSubViewToFront它来把它带到顶部。看这个链接来管理它

于 2012-05-15T18:08:51.380 回答
0

我最终使用这个工具来达到同样的效果,并且发现实现起来要简单得多。http://cocoacontrols.com/controls/iiviewdeckcontroller

于 2012-06-13T23:37:23.510 回答