首页 > 解决方案 > 如何添加默认 ViewController 以及导航抽屉 ViewController

问题描述

我已经实现了一个menuViewVontroller运行良好的导航抽屉。我能够在它们各自的菜单按钮上呈现视图控制器。我有一个 ViewController 首先加载,然后我从导航菜单中显示其他视图控制器,即主菜单显示homeViewVontroller等,正如您在屏幕截图中看到的那样。

在此处输入图像描述 在此处输入图像描述

但我也希望我的应用程序显示homeControllerViewviewController 的加载时间。由于视图控制器为空,它当前正在渲染一个空屏幕。当我在方法中编写下面的代码时viewDidLoad(),我没有得到导航抽屉,只是显示了 homeViewController(如下图所示)。

在此处输入图像描述

let view = UIView()
    let controller = storyboard!.instantiateViewController(withIdentifier: "SliderController")
    addChild(controller)
    view.frame = self.view.bounds
    self.view.addSubview(controller.view)
    self.topView = view

我该怎么做才能在同一个屏幕上同时渲染 thehomeViewController和 the 。menuViewController

编辑:当用户按下菜单项时我的代码

@IBAction func didTapMenuButton(_ sender: UIBarButtonItem) {
    guard let menuViewController = storyboard?.instantiateViewController(withIdentifier: "MenuViewController") as? MenuViewController else { return }
    menuViewController.didTapMenuType = {
        menuType in
        self.transitionToNew(menuType)
    }
    menuViewController.modalPresentationStyle = .overCurrentContext
    menuViewController.transitioningDelegate = self
    present(menuViewController, animated: true)
}
func transitionToNew(_ menuType: MenuType) {
    let title = String(describing: menuType).capitalized
    self.title = title

    topView?.removeFromSuperview()
    switch menuType {


    case .promotion:
        let view = UIView()
        view.backgroundColor = .yellow
        view.frame = self.view.bounds
        self.view.addSubview(view)
        self.topView = view
    case .billPayment:
        let view = UIView()
        view.backgroundColor = .blue
        view.frame = self.view.bounds
        self.view.addSubview(view)
        self.topView = view
    default:
        break
    }
}

标签: iosswiftxcode

解决方案


推荐阅读