- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于 VC 遏制的类似问题可以解决我想要的最终结果,但我提出这个假设性问题是为了确定遏制的基本概念。
我有一个主 Controller 容器 (A),其中包含 viewController B 和 viewController C。ViewController B 占据屏幕的一半,C 占据另一半。
当我按下 VC B 上的按钮时,我希望另一个 View Controller (D) 占据整个屏幕。
我有显示“拆分” Controller B 和 C 的代码,但需要知道如何显示 viewController D。
我的问题:什么代码可以让 viewController D 显示,它会从哪里调用?
我花了几个小时寻找涉及此模式的问题,但无济于事。我假设 VC A 将负责显示它(否则它无法填满整个屏幕),而 VC B 上的按钮将涉及使用 parentViewController 的 VC A - 但我无法让它工作.
最佳答案
出于可重用性的原因, View Controller B 和 C(以及 D)应该独立于容器 View Controller 运行。这样,它们就可以在容器 View Controller 的内部和外部使用。
使用委托(delegate)可以实现您想要的。在 View Controller B 上创建一个委托(delegate)属性,并将容器 View Controller ( View Controller A)设置为 View Controller B 的委托(delegate)。按下按钮时,向代理发送消息 ([self.delegate buttonPressed]
),B 将随后接收该消息。现在 B 可以添加另一个 subview Controller (D),它可以以您喜欢的任何方式呈现。
使用 parentViewController 可能有效,但如果您决定单独使用该 View Controller ,则此属性可能为 nil。
关于ipad - UIViewController 包含基础知识 - 如何在两个并排的 ViewController 上显示全屏 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11587471/
我是一名优秀的程序员,十分优秀!