| 测试已测试 | ✗ |
| Lang语言 | SwiftSwift |
| 许可证 | MIT |
| 发布最后发布 | 2016年12月 |
| SwiftSwift 版本 | 3.0 |
| SPM支持 SPM | ✗ |
由 Bruno Rendeiro 维护。
ContainerViewSegueManager 负责告诉您的 UIViewController 应执行哪个 segue。
将容器添加到您的 UIViewController 后,应命名其嵌套 segue 标识符
您还需要确保嵌套的 UIViewController 自定义类是 ContainerViewSegueManager
然后在您的 UIViewController 类中重写 prepareForSegue:sender: 并使用对 ContainerViewSegueManager 和您的 ContainerDataManager 子类实例的引用
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "embedSegue" {
self.containerView = segue.destinationViewController as! ContainerViewSegueManager
let data = MyContainerData(fromParent: self, fromContainer: self.containerView)
self.containerView.containerDataClass = data
}
}确保 shouldPerformSegueWithIdentifier:sender: 返回 YES
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
return true
}从您的 ContainerViewSegueManager 到您的 UIViewController 的所有 segue 应为 EmptySegue 类型,并具有标识符。别忘了将“模块”设置为 ContainerManager
ContainerDataManager 负责根据您应用程序的数据和需求决定应将哪个 segueIdentifier 传递给 ContainerViewSegueManager 的 performSegueWithIdentifier:sender:。
ContainerDataManager您应该创建 ContainerDataManager 的一个子类并重写 additionalSetup 方法
MyContainerDataManager.h
import UIKit
import ContainerManager
class MyContainerData: ContainerDataManagersegueIdentifierContainerDataManager additionalSetup 方法将被您的类实现重写。`self.currentSegueIdentifier` 不能为 nil。
override func additionalSetup() {
let array = [1,2,3]
if array.count != 0 {
self.currentSegueIdentifier = "FirstViewController"
}
else {
self.currentSegueIdentifier = "SecondViewController"
}
}您可以使用ContainerViewSegueManager swapFromViewController:toViewController轻松地从一个UIViewController切换到另一个UIViewController。
let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
let second = storyboard.instantiateViewControllerWithIdentifier("SecondViewController")
container.swapFromViewController(self, toViewController: second)ContainerManager支持iOS 8.3+. 已更新到Swift 3.0。
ContainerManager支持多种方法在项目中安装库。
Bruno Rendeiro, [email protected]。
ContainerManager遵循MIT许可证。有关更多信息,请参阅许可证文件。