【问题标题】:Display whole ViewController within another ViewController's view在另一个 ViewController 视图中显示整个 View Controller
【发布时间】:2012-04-06 17:06:38
【问题描述】:

我正在编写一个主视图控制器为UIViewController 的应用程序。它在网格中有一些图标,当单击其中一个图标时,我想关闭(向下滑动)该网格。这个我已经做过了。问题是:当网格被关闭时,我希望另一个视图来自屏幕顶部。该视图位于同一个根视图控制器中。但是我想在这个视图中显示其他视图控制器的内容。例如:我希望这个视图显示一个UINavigationController,里面有一个UITableView,这样用户就可以在TableViews中导航。

我正在这样做:

HorariosViewController *horarios = [[HorariosViewController alloc] init];
[vuashView addSubview:horarios.view];

HorariosViewControllerUINavigationViewController。它只向我显示一个蓝色的 NavigationBar,并且像 self.navigationItem.title = @"Title" 这样的更改将不起作用。

谢谢!

【问题讨论】:

    标签: iphone navigation storyboard tableview


    【解决方案1】:

    您可以将另一个视图控制器的视图显示为子视图,但除非您编写代码来建立新连接,否则它们的出口和操作仍链接到其原始视图控制器,因此不应期望 self.whatever 影响其他视图控制器的属性。

    (另外,如果 HorariosViewController 是 UINavigationController,则不应将其创建为 UIViewController。)

    【讨论】:

      【解决方案2】:

      一种方法是让导航控制器已经存在,并在其顶部以模态方式显示图标网格。 (您可以在没有动画的情况下以这种方式设置视图,因此用户看不到下面的导航控制器)。

      然后,当网格消失的时候,它可以用动画调用它自己的dismissModalViewController。

      【讨论】:

      • 这是一个很好的解决方案,但我想要一些不同的东西:当网格被关闭时,它不会像 Facebook 应用程序一样从视图中完全消失,而是垂直消失。
      • 好的。那个图标网格有什么作用?如果它足够简单,您可以将其设为视图(不是视图控制器),它是导航控制器的子视图。您可以编写自己的简单动画以将其滑入和(部分)滑出。两个视图控制器一起拥有屏幕的一部分并没有被禁止,但根本不推荐。让我知道这是否合理,我会在我的答案中添加一些插图代码。
      • 我的动画已经开始工作了,它在网格上滑动,但仍然可见,所以用户可以返回菜单。图标网格是一个 UIImageView。我的问题是单击某个图标时显示其他视图控制器的内容。我想到了另一种解决方案:执行动画,并在动画结束时,呈现一个带有所需视图控制器的模态(无动画)视图控制器,并通过添加图像使其看起来仍然在同一个视图中窗口底部的网格顶部。但是还是看不到viewcontroller里面的数据
      猜你喜欢
      • 2018-04-27
      • 1970-01-01
      • 2023-03-08
      • 2014-08-03
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 2015-04-26
      相关资源
      最近更新 更多