Я создаю простое приложение, используя Material Design for iOS
.Я попытался использовать компонент с именем MDCAppBarViewController
, который похож на UINavigationController
для UIKit
.
Моя проблема в том, что я хочу pushViewController
к другому контроллеру, но он, кажется, не работает, как я ожидал.
Что я сделал до сих пор:
class FeedViewController: UIViewController {
// Step 1: Create and initialize an App Bar.
let appBarViewController = MDCAppBarViewController()
var colorScheme = MDCSemanticColorScheme()
var typographyScheme = MDCTypographyScheme()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
appBarViewController.headerView.trackingScrollView = nil
self.navigationItem.title = "News Feed"
// Behavioral flags.
appBarViewController.inferTopSafeAreaInsetFromViewController = true
appBarViewController.headerView.minMaxHeightIncludesSafeArea = false
// Step 2: Add the headerViewController as a child.
self.addChild(appBarViewController)
MDCAppBarColorThemer.applyColorScheme(colorScheme, to: appBarViewController)
MDCAppBarTypographyThemer.applyTypographyScheme(typographyScheme, to: appBarViewController)
// Allows us to avoid forwarding events, but means we can't enable shift behaviors.
appBarViewController.headerView.observesTrackingScrollViewScrollEvents = true
self.view.addSubview(self.appBarViewController.view)
appBarViewController.didMove(toParent: self)
self.navigationItem.rightBarButtonItem =
UIBarButtonItem(title: "Right", style: .done, target: nil, action: #selector(rightMove))
}
@objc
func rightMove() {
appBarViewController.navigationController?.pushViewController(RightController(), animated: true)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
}
Я использовал этот метод для просмотра, но он не работает
@objc
func rightMove() {
appBarViewController.navigationController?.pushViewController(RightController(), animated: true)
}