Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将默认ViewController与导航抽屉ViewController一起添加_Ios_Swift_Xcode - Fatal编程技术网

Ios 如何将默认ViewController与导航抽屉ViewController一起添加

Ios 如何将默认ViewController与导航抽屉ViewController一起添加,ios,swift,xcode,Ios,Swift,Xcode,我为导航抽屉实现了一个运行良好的menuviewvocontroller。我能够在各自的菜单按钮上渲染视图控制器。我有一个首先加载的视图控制器,然后从导航菜单显示其他视图控制器,即主菜单显示homeviewvocontroller等,如屏幕截图所示 但我也希望我的应用程序在加载viewController时显示homeControllerView。当视图控制器为空时,它当前正在呈现一个空屏幕。当我在viewdiload()方法中编写以下代码时,我没有得到导航抽屉,只显示homeViewCon

我为导航抽屉实现了一个运行良好的
menuviewvocontroller
。我能够在各自的菜单按钮上渲染视图控制器。我有一个首先加载的视图控制器,然后从导航菜单显示其他视图控制器,即主菜单显示
homeviewvocontroller
等,如屏幕截图所示

但我也希望我的应用程序在加载viewController时显示
homeControllerView
。当视图控制器为空时,它当前正在呈现一个空屏幕。当我在
viewdiload()
方法中编写以下代码时,我没有得到导航抽屉,只显示homeViewController(如下图所示)

如何在同一屏幕中呈现
homeViewController
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
    }
}

当用户点击菜单项时,您编写了什么代码?它是否会使用导航控制器来推送
homeViewController
,或者它是如何实现的?顺便问一下,什么是
“滑动控制器”
?我以为你的意思是“HomeViewController”,还是我弄错了?@andreasetjen我已经编辑了我的问题,你可以在那里找到代码。另外,SliderController是HomeViewControllerI的情节提要标识符。我还不明白。我们讨论的是主视图控制器,但是您的代码没有在menuType switch/case语句中显示它。其次,看看
case.promotion
,我一点也不知道一个单独的晋升控制者会如何参与进来。您只是将
topView
替换为空的
UIView
@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
    }
}