ContainerManager 2.0.1

ContainerManager 2.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

Bruno Rendeiro 维护。



  • brurend

ContainerManager

使用方法

ContainerViewSegueManager

ContainerViewSegueManager 负责告诉您的 UIViewController 应执行哪个 segue。

创建您的 containerView

将容器添加到您的 UIViewController 后,应命名其嵌套 segue 标识符

Screenshots/EmbedSegueSS.png

您还需要确保嵌套的 UIViewController 自定义类是 ContainerViewSegueManager

Screenshots/ContainerViewSegueManagerSS.png

然后在您的 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
}

EmptySegue

从您的 ContainerViewSegueManager 到您的 UIViewController 的所有 segue 应为 EmptySegue 类型,并具有标识符。别忘了将“模块”设置为 ContainerManager

Screenshots/EmptySegueSS.png

ContainerDataManager

ContainerDataManager 负责根据您应用程序的数据和需求决定应将哪个 segueIdentifier 传递给 ContainerViewSegueManagerperformSegueWithIdentifier: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"
    }
}

交换 viewController

您可以使用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许可证。有关更多信息,请参阅许可证文件。