- Xcode 8.3.3
- Swift 3.1
もちろんStoryBoardは使いません。
全然関係ないですが、これを実現しようとGoogle先生に聞くとStoryBoardやらSegueやらばかりがHITします😇
あれって使ってる人いるんですね😇
親View
import UIKit
class TabViewController: UITabBarController {
private var _Example1: UINavigationController!
private var _Example2: UINavigationController!
private var _Example3: UINavigationController!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
_Example1 = UINavigationController(rootViewController: Example1ViewController())
_Example2 = UINavigationController(rootViewController: Example2ViewController())
_Example3 = UINavigationController(rootViewController: Example3ViewController())
_Example1.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 1)
_Example2.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 2)
_Example3.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.featured, tag: 3)
self.setViewControllers([_Example1!, _Example2!, _Example3!], animated: false)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
子となるView
import UIKit
class Example1ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Example1"
self.navigationItem.leftBarButtonItem = nil
let btnRight = UIBarButtonItem(title: "Next >", style: UIBarButtonItemStyle.plain, target: self, action: #selector(Example1ViewController.goNext))
self.navigationItem.rightBarButtonItem = btnRight
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@objc func goNext() {
self.navigationController?.pushViewController(Example1NextViewController(), animated: true)
}
}
子ViewからNavigationで遷移するView
StoryBoardを使わずにUINavigationControllerという記事ではExample2ViewControllerでした(紛らわしくてすいません🙇)
import UIKit
class Example1NextViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Example1Next"
let btnLeft = UIBarButtonItem(title: "< Back", style: UIBarButtonItemStyle.plain, target: self, action: #selector(Example1NextViewController.goBack))
self.navigationItem.leftBarButtonItem = btnLeft
self.navigationItem.rightBarButtonItem = nil
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@objc func goBack() {
self.navigationController?.popViewController(animated: true)
}
}
Example2, 3についても同じように実装すればタブで切替えながらナビからも操作出来るようになります!
自分のコードから抽出して掲載しているので動かない等あればお気軽にどうぞ!
0 件のコメント:
コメントを投稿