SlideMenuController と UINavigationController の組み合わせ
新年あけましておめでとうございます.
今年の書き初め(プログラミング)は Swift でした.
最近、約1年ぶりくらいに Swift を書いてます.
Swift 3 から Swift 4 への過渡期により多少辛みがありますが、Xcode の進化に関心したりしています.
今回は iOS で Navigation Drawer を実現するライブラリである SlideMenuControllerSwift と UINavigationController の組み合わせについてです.
たぶんサンプルコード読めば書いてあるのですが、ぱっと検索して出てこなかったので参考になれば.
実装方法はいたって簡単です.
slideMenuController から mainViewController を取得できるので、UINavigationController にキャストしてあげます.
import UIKit
class MenuViewController: UIViewController {
private func navigate(){
let viewController = MyViewController()
(self.slideMenuController()?.mainViewController as? UINavigationController)?.pushViewController(viewController, animated: true)
self.slideMenuController()?.closeLeft()
}
}
前提として、mainViewController に UINavigationController をセットしている必要があります.
import UIKit
import SlideMenuControllerSwift
class CustomSlideMenuController: SlideMenuController {
override func awakeFromNib() {
let main = storyboard?.instantiateViewController(withIdentifier: "Main")
let left = storyboard?.instantiateViewController(withIdentifier: "Left")
let navigationController = UINavigationController(rootViewController: main!)
mainViewController = navigationController
leftViewController = left
super.awakeFromNib()
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
以上です.
PS. 今年はネイティブをよく書きそうな予感がするので、Swift, Kotlin あたりを頑張ります.