测试已测试 | ✗ |
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: ContainerDataManager
segueIdentifier
ContainerDataManager 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许可证。有关更多信息,请参阅许可证文件。