问题标签 [uicontainerview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6674 浏览

xcode4.2 - 故事板和自定义容器视图控制器

我正在根据苹果规范创建一个自定义容器视图。我想使用情节提要连接三个静态子 UIViewController。情节提要中是否有一种简单的方法可以通过Relationship情节提要中的 UINavigationController 进行连接?

NavigationController '关系'

根据我的研究,这似乎是不可能的。

0 投票
11 回答
94538 浏览

ios - 从父 iOS 访问容器视图控制器

在 iOS6 中,我注意到新的容器视图,但不太确定如何从包含视图访问它的控制器。

设想:

例子

我想从包含容器视图的视图控制器访问警报视图控制器中的标签。

他们之间有一个segue,我可以使用它吗?

0 投票
1 回答
744 浏览

uiviewcontroller - UIContainerViewController 控制器之间的通信

所以我真的很难做到这一点。我的 iPad 应用程序有一个包含类别的侧面菜单,一旦选择加载作为容器的 UIViewController。这个容器左侧有一个自定义的 UITableView,右侧有一个自定义的 UIView。

如何让我的容器告诉 UITableViewController 选择了哪个类别,以便它可以显示正确的表格数据。那么我的 UITableViewController 如何告诉详细视图要显示什么?

这与 UISplitView 的功能完全相同,但我的界面是完全定制设计的,看起来一点也不像拆分视图,但功能却类似。

苦苦挣扎了几天,任何帮助将不胜感激!非常感谢!

0 投票
1 回答
2402 浏览

ios - 嵌入式 UINavigationController 的后退按钮不起作用

Container View通过界面构建​​器使用控件将 aUINavigationController及其堆栈嵌入到我的应用程序中。

我遇到的问题是后退按钮不适用于根 VC 上的所有推送 VC。

在这些推送的 VC 上按下自动生成的后退按钮,没有任何反应。

编辑:

没有写代码。目前,它全部在 IB 中设置。

在此处输入图像描述

如您所见...容器视图及其嵌入式视图控制器设置为 UInavigation 控制器。左边的空白最终将是一个可滑动的菜单 - 这就是设置的原因。然后在根 RV 上有一个下一步按钮,它连接到第二个视图控制器。

在此处输入图像描述

该状态如上所示。按下后退按钮(标记为测试)什么也不做。通常它会弹出顶视图控制器并返回“测试”。显然,嵌入以某种方式干扰了正常的 UINavigiationController 功能。

我只是不知道怎么做。

另一个编辑:

在该顶部视图控制器上制作一个自定义按钮并手动调用

实际工作,顶视图控制器从堆栈中删除。

所以问题是为什么后退按钮不起作用?

0 投票
4 回答
45915 浏览

ios - addChildViewController 实际上做了什么?

我只是第一次涉足 iOS 开发,我必须做的第一件事就是实现一个自定义容器视图控制器- 让我们调用它SideBarViewController- 交换几个可能的子视图控制器中的哪一个显示,几乎与标准的Tab Bar Controller完全一样。(它几乎是一个标签栏控制器,但有一个可隐藏的侧边菜单而不是标签栏。)

根据 Apple 文档中的说明,addChildViewController每当我将子 ViewController 添加到我的容器时,我都会调用。我用于换出当前子视图控制器的代码如下所示SideBarViewController

然后我开始试图弄清楚addChildViewController这里是做什么的,我意识到我不知道。ViewController除了在数组中粘贴新的.childViewControllers,它似乎对任何东西都没有影响。即使我从不调用addChildViewController,从子控制器的视图到子控制器的操作和出口仍然可以正常工作,而且我无法想象它还会影响什么。

确实,如果我将代码重写为不调用addChildViewController,而是看起来像这样......

...那么我的应用程序仍然可以完美运行,据我所知!

Apple 文档并没有详细说明它是做什么addChildViewController的,或者我们为什么要这么称呼它。UIViewController目前,在Class Reference的部分中,对该方法的作用或为什么应该使用它的相关描述的全部范围是:

将给定的视图控制器添加为子视图。...此方法仅旨在由自定义容器视图控制器的实现调用。如果你重写这个方法,你必须在你的实现中调用 super。

在同一页的前面还有这段:

在将子视图控制器添加到视图层次结构之前,您的容器视图控制器必须将子视图控制器与其自身相关联。这允许 iOS 正确地将事件路由到子视图控制器和这些控制器管理的视图。同样,在它从其视图层次结构中删除子视图的根视图后,它应该断开该子视图控制器与自身的连接。要建立或破坏这些关联,您的容器会调用基类定义的特定方法。这些方法不打算由您的容器类的客户端调用;它们只能由您的容器实现使用,以提供预期的遏制行为。

以下是您可能需要调用的基本方法:

addChildViewController:
removeFromParentViewController
willMoveToParentViewController:
didMoveToParentViewController:

但它没有提供任何线索来说明它所谈论的“事件”或“预期的收容行为”是什么,或者为什么(甚至何时)调用这些方法是“必要的”。

Apple 文档的“自定义容器视图控制器”部分中的自定义容器视图控制器示例都调用了这个方法,所以我认为它除了将子 ViewController 弹出到一个数组之外还有一些重要的目的,但我想不通出那个目的是什么。这个方法有什么作用,我为什么要调用它?

0 投票
2 回答
1615 浏览

objective-c - 使导航控制器在 iOS 6 和 iOS 7 中的工作方式相同

如何在 iOS 6 和 iOS 7 中通过故事板使用 UIContainerView 支持导航栏?

我正在将 iOS 6 应用程序更新到 iOS 7,但希望继续支持 iOS 6。我有一个嵌入在 UINavigationController 中的主顶层视图。导航控制器中的视图中有一个容器视图。我正在使用故事板来布置视图。

在 iOS 7 上,导航控制器使用整个屏幕,我将其设置为将容器视图内容放在导航栏下方。在 iOS 6 中,视图的内容不在导航栏下方,因此导航栏下方有一个空白。

通常我会在 iOS6 上重置有问题的视图的来源(在 ViewDidLoad 或类似的地方),然后继续我的方式。但是,由于我的内容位于 UIContainerView 中,因此加载后我似乎无法更改框架。(我在prepareForSegue中试过这个:加载UIContainerView时。我愿意做错了吗?呵呵)

我发现的最接近的是在 iOS 7 下使用以下代码使导航栏不透明并使其下方的内容远离,然后将整个空间用于我的 UIContainerView。

此解决方案有效,但具有将状态栏显示为黑色的副作用(因为它在状态栏下方或多或少是“空白”)。或者,如果我将容器视图的顶部边缘放在状态栏下方,在 iOS 6 上,我在导航栏下方有一个很大的间隙。

我可以取消使用导航控制器,但在这种情况下似乎有点笨拙,我想将其用作最后的手段。

0 投票
2 回答
3946 浏览

ios - iOS:以编程方式调用容器视图

在调用 View Controller 之前Main,我会通过委托通知MainView Controller 是调用TVC1还是TVC2in Container View

问题:我如何以编程方式告诉Container ViewinMain View Controller调用TVC1 or TVC2

在加载视图控制器时Container View,我在哪里以及如何告诉这些控制器之一?loadMain

在此处输入图像描述

0 投票
3 回答
27491 浏览

ios - 在容器视图中交换子视图

让我们ContainerView成为具有两个子内容视图的父容器视图:NavigationViewContentView.

视图布局示例

我希望能够将控制器换成ContentView另一个视图。例如,将主页控制器与新闻页面控制器交换。目前,我能想到的唯一方法是使用委托来告诉ContainerView我要切换视图。这似乎是一种草率的做法,因为最终ContainerViewController会为所有子视图拥有一堆特殊的代表。

这也需要与NavigationViewwhich 进行通信,了解当前在 中哪个视图的信息ContentView。例如:如果用户在新闻页面上,导航视图中的导航栏将显示当前选择了新闻按钮。

问题 A:ContentView有没有办法在不调用ContainerView自身的委托方法的情况下 交换控制器?我想以编程方式执行此操作(没有故事板)。

问题 B: 如何在没有委托调用ContentView的情况下交换控制器?NavigationView我想以编程方式执行此操作(没有故事板)。

0 投票
2 回答
971 浏览

ios - 如何将数据从父视图传递到子视图?

我有一个容器视图,它使用情节提要嵌入 segue 来加载嵌入式静态表视图。segue ID 是'CONTAINER'。

当我运行以下代码时,prepareForSegue 实际上从未被调用,因此没有数据从父级传递给子级。

我的问题是:

a) 为什么没有调用 prepareForSegue?Storyboard Embed Segue 的行为是否与标准序列不同?

b)有没有更好的方法将数据从容器视图传递到嵌入式表?

也请忽略凌乱的实现/各种日志测试,只是我试图找出问题所在。

0 投票
1 回答
747 浏览

ios - 如何进行像“Whatsapp”这样的半透明模态转场 - “拍照/选择现有照片”

我的想法是像 whatsapp 一样创建一个半透明的视图。

1)我在图像视图上有一个点击手势。

2)当我点击图像视图时,会出现像whatsapp这样的一层透明视图

3)然后我有三个按钮 - 选择新的,选择现有的或取消。 故事板

我如何从这里继续?当我按下取消它应该弹出半透明的 ui 视图..