コンテナ ビューにナビゲーション コントローラを子ビューとして追加しようとしています。コンテナー ビューは私にとっては初めてのことですが、今では理解できたと思います...そして、コンテナー ビューを使用してデモ プロジェクトを正常に構築しました..しかし、内部にある ViewController (VC) を追加しようとするとすぐにナビゲーション スタック、この VC は表示されないだけで、その説明が見つかりません:?
既存のプロジェクトでこの機能を使用するため、これらの子をストーリーボードではなくコードに追加したいのですが、できるだけシンプルに保ちたいので、誰か助けてもらえますか?
メイン ビュー コントローラー:
import UIKit
class MainViewController: UIViewController {
let naviVC = ViewController()
let menuVC = SideMenuViewController()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
addChild(naviVC)
addChild(menuVC)
self.view.addSubview(naviVC.view)
self.view.addSubview(menuVC.view)
naviVC.didMove(toParent: self)
menuVC.didMove(toParent: self)
naviVC.view.frame = self.view.bounds
menuVC.view.frame = self.view.bounds
naviVC.view.isHidden = false
menuVC.view.isHidden = true
}
}
ViewController (ナビ内):
import UIKit
class ViewController: UIViewController {
let menuVC = SideMenuViewController()
override func viewDidLoad() {
super.viewDidLoad()
configureNaviBar()
}
//MARK: Navi Bar
func configureNaviBar() {
// Left Bar Button Item
let burgerButton = UIImage(systemName: "line.horizontal.3")
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: burgerButton, style: .plain, target: self, action: #selector(showMenu))
}
@objc func showMenu() {
print("Button pressed")
// do something
menuVC.view.isHidden = false
print("menuVC is hidden = \(menuVC.view.isHidden)")
}
}
SideMenuViewController:
class SideMenuViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}