使用安全和干净的代码进行屏幕转换。
使用演讲者,您可以……
此库建议与即时可实例化一起使用。
MyViewController.Presenter(userID: "muukii").push(self.navigationController)
MyViewController.Presenter(userID: "muukii").present(self)
MyViewController.Presenter(userID: "muukii").push(self.navigationController) { (transaction: PushTransaction<MyViewController> in
// Pop
transaction.pop()
// Get
transaction.viewController
}
MyViewController.Presenter(userID: "muukii").present(self) { (transaction: ModalTransaction<MyViewController>) in
// Pop
transaction.dismiss()
// Get
transaction.viewController
}
推送
extension MyViewController {
final class Presenter: PushPresenter {
let userID: String
init(userID: String) {
self.userID = userID
}
func createViewController() -> MyViewController {
let controller = MessagesViewController() // Init from Stroyboard or XIB
controller.userID = userID
return controller
}
// Optional:
public func willPush(viewController: MyViewController) {
}
public func didPush(viewController: MyViewController) {
}
}
}
展示
extension MyViewController {
final class Presenter: ModalPresenter {
let userID: String
init(userID: String) {
self.userID = userID
}
func parentController(viewController: UIViewController) -> UIViewController? {
return UINavigationController(rootViewController: viewController)
}
func createViewController() -> MyViewController {
let controller = MessagesViewController() // Init from Stroyboard or XIB
controller.userID = userID
return controller
}
// Optional
public func willPresent(viewController: MyViewController) {
}
public func didPresent(viewController: MyViewController) {
}
}
}
展示或推送
extension MyViewController {
final class Presenter: PushPresenter, ModalPresenter {
let userID: String
init(userID: String) {
self.userID = userID
}
func parentController(viewController: UIViewController) -> UIViewController? {
// Call Present() only
return UINavigationController(rootViewController: viewController)
}
func createViewController() -> MyViewController {
let controller = MessagesViewController() // Init from Stroyboard or XIB
controller.userID = userID
return controller
}
// Optional
public func willPresent(viewController: MyViewController) {
}
public func didPresent(viewController: MyViewController) {
}
public func willPush(viewController: MyViewController) {
}
public func didPush(viewController: MyViewController) {
}
}
}
演讲者通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod "Presenter"
muukii,[email protected]
演讲者在MIT许可下提供。有关更多信息,请参阅LICENSE文件。