|
//
// UIViewControllerExt.swift
// ExtensionKit
//
// Created by FFIB on 2017/9/13.
// Copyright © 2017年 FFIB. All rights reserved.
//
import UIKit
//MARK: custom methods extension
extension UIViewController {
public func addChildControllerAndView(_ controller: UIViewController, isNavigable: Bool = true) {
if isNavigable {
self.navigationController?.addChildViewController(controller)
self.navigationController?.view.addSubview(controller.view)
}else {
self.addChildViewController(controller)
self.view.addSubview(controller.view)
}
}
public func removeControllerAndViewFromParent() {
self.removeFromParentViewController()
self.view.removeFromSuperview()
}
}
//MARK: notification extension
extension UIViewController {
public func addNotificationObserver(name: Notification.Name, selector: Selector) {
NotificationCenter.default.addObserver(self, selector: selector, name: name, object: nil)
}
public func removeNotificationObserver(name: Notification.Name) {
NotificationCenter.default.removeObserver(self, name: name, object: nil)
}
public func removeAllNotificationObserver() {
NotificationCenter.default.removeObserver(self)
}
}
//MARK: jump extension
extension UIViewController {
public func popToRootController() {
navigationController?.popToRootViewController(animated: true)
}
public func pushController(_ vc: UIViewController) {
navigationController?.pushViewController(vc, animated: true)
}
public func popController() {
navigationController?.popViewController(animated: true)
}
public func popToController(_ vc: UIViewController) {
navigationController?.popToViewController(vc, animated: true)
}
public func presentController(_ vc: UIViewController) {
present(vc, animated: true, completion: nil)
}
public func dismissController() {
dismiss(animated: true, completion: nil)
}
}
//MARK: navigation lateral spreads to return
extension UIViewController {
}
|