ios - 如何从另一个容器访问容器 View

标签 ios uiviewcontroller containers

场景: 我有一个主视图 Controller ,从该 View Controller 我放置了 3 个按钮和 3 个容器 View 。对于每个按钮单击,我都启用了适当的容器。在这里我有主页、关于我们并联系我们,从家里我需要进入联系我们容器 View 。

如何从主容器 View Controller 启用“联系我们”容器 View ?

enter image description here

欢迎提供更多有值(value)的答案,先谢谢您。

最佳答案

您可以执行以下操作:

1) 为您的容器 View Controller 创建一个自定义类(UIViewController 的子类),并在 Interface Builder 中将该容器 View Controller 的类设置为您的自定义子类。

2) 在自定义容器 View Controller 类中实现一些 API 来管理其子级。也许类似 - (void)switchToAboutVC 之类的东西(他们应该调用 performSegueWithIdentifier:sender:)。

3)在你的 subview Controller (例如关于,联系我们等)中,你可以访问父 View Controller 并使其切换,所以它看起来像[(MyCustomContainerController*)[selfparentViewController] switchToAboutVC ]

PS 在 MVC 模式中这样做很好,只需确保正确的对象正在管理 VC 层次结构 — 在本例中,这是您的自定义容器 Controller 。它与使用导航 Controller 的方式非常相似,不同之处在于每个 subview Controller 已经具有一个属性来获取其父导航 Controller ,而无需在 View Controller 层次结构中手动搜索它。

关于ios - 如何从另一个容器访问容器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076634/

相关文章:

Flutter - 容器高度与子 Text.length 相同?

ios - 类型 'NSObject -> () -> ViewController' 的值没有成员 'dbRestClient'

ios - ViewController 中的 SQLite 错误 14

ios - 与 iOS 核心数据的一对多关系

ios - UIStoryboard 和继承

MATLAB 数组和容器

iphone - Cocos2d 和 iPhone : Parallax Background with multiple texture atlases gives many memory warnings

swift - 使用 storyboardID 访问 UIViewController 而不实例化它

iphone - 在 xCode 5/iOS7 中使导航栏拉伸(stretch)到状态栏后面

c++ - 如果对象位于可能的最高地址怎么办