当前位置: 首页 > 知识库问答 >
问题:

iOS访问PageViewController子容器视图

仲柏
2023-03-14

我有一个包含ContainerView的ViewController(我们称之为MainViewController)。ContainerView只包含一个子项—PageViewController。PageViewController通过4个不同的ViewController进行分页(我们称它们为红色、蓝色、绿色和橙色ViewController)。如何从MainViewController访问不同颜色的子ViewController(每个都包含一个UITableView,我想从MainActivity向下传递这些TableView的数据,这样我就不必进行单独的数据库调用来获取每个颜色页面的数据)?

注意:我知道如何使用以下方法访问ContainerView中的ViewController:从父iOS访问容器视图控制器。但这只会让我进入PageViewController——我需要更深一层。如能以Swift方式答复,将不胜感激。

接下来,我将如何从4个彩色“grand children”视图控制器访问Main ViewController(正确的术语?)?

共有2个答案

贺聪
2023-03-14

UIPageViewController上,有一个名为viewControllers的属性。它为您提供由页面视图控制器显示的视图控制器 。这是一个数组,因为UIPageViewController可以同时显示多个页面。但是,如果同时只有一个页面,则数组将只包含此页面。

以下是一个例子:

if let myViewControllers = myPageViewController.viewControllers as? [UIViewController] {
    for viewController in myViewControllers {
        // Do something with the viewController
    }
}
权玉泽
2023-03-14

正如前面的回答所指出的,这是一种有效的方式来看待孩子:

if let myViewControllers = myPageViewController.viewControllers as? [UIViewController] {
    for viewController in myViewControllers {
        // Do something with the viewController
    }
}

但它只会显示当前视图中的一个子项。如果要在实例化并将其添加到ContainerView/PageViewController时访问所有子视图控制器,包括不可见的子视图控制器,请保存对它们的引用。然后,您可以使用该引用访问每个子级ViewController中的任何函数/数据。

 类似资料:
  • 本文向大家介绍iOS 访问容器视图控制器,包括了iOS 访问容器视图控制器的使用技巧和注意事项,需要的朋友参考一下 示例 当视图控制器出现在标签栏控制器中时,您可以像这样访问标签栏控制器: 迅速 目标C 当视图控制器是导航堆栈中的一部分时,您可以按以下方式访问导航控制器: 迅速 目标C            

  • 在iOS6中,我注意到了新的容器视图,但不太确定如何从包含视图访问它的控制器。 脚本: 我想从包含容器视图的视图控制器访问Alert view controller中的标签。 他们之间有一段距离,我能用吗?

  • 我在理解容器视图控制器的实现方式时遇到了一些麻烦。 我将一个容器拖到主视图控制器中,它会自动创建嵌入式视图控制器,并通过嵌入式segue连接。然后,我可以通过从主视图控制器访问它。 我有点困惑,在飞行中创建和使用这些。即我想用它作为警报视图。我是否只是初始化视图一次,然后在每次显示被触发时更改其内容?我应该调用或只是设置隐藏/动画视图进出? 发音有困难。希望有人会说新语,能理解我。

  • PageViewController 实现了 UIViewController 的容器,用来通过 UIPageControl 实现对子 UIViewController 的控制。

  • 容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。iptables 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。 容器访问外部网络 容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。 $sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 1 如果为 0,

  • 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。 使用 docker container ls 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应