当我在一个viewController和另一个不同的storyboard

时间:2018-05-28 20:21:37

标签: ios swift xcode

我在app中使用RWRevealViewController。我有一个包含几个单元格的幻灯片菜单,每个单元格都指向一个viewController。此外,每个viewController都嵌入在navigationController中。

我的情况是我有一个viewController“A”和viewController“B”。如果我想去其中任何一个,我使用幻灯片菜单。但是,在viewController“B”中有一个按钮,如果我点击它,它会将我带到viewController“A”。在这种情况下,如果我想显示带导航栏的viewController“A”和显示幻灯片菜单的栏按钮项目,我使用了这个

let vc = self.storyboard?.instantiateViewController(withIdentifier: "A")
    self.present(vc!, animated: true, completion: nil)

如果它位于主故事板中,则此解决方案可以正常工作。但是,如果每个viewControllers都在单独的storyboard中,我必须指定viewController“A”的故事板。所以,我使用了这个解决方案

let storyboard = UIStoryboard(name: "A", bundle: nil)
    let A = storyboard.instantiateViewController(withIdentifier: "navA")
    present(A, animated: true, completion: nil)

在这里,主要故事板有容器视图“SWRevealViewController”,幻灯片菜单viewController,以及每个viewControllers“A”和“B”的故事板引用

  • viewController的故事板名称“A” - > A.storyboard
  • viewController的navigatoinViewController的故事板ID“A” - >纳瓦
  • viewController的故事板参考ID“A”是 - >纳瓦

所以,当我这样做时,除了条形按钮项目不显示幻灯片菜单之外,每个东西都有效,因为revealViewController等于nil

条形按钮项的操作

func sideMenus () {
    if revealViewController() != nil {
        menuBtn.target = revealViewController()
        menuBtn.action = #selector(SWRevealViewController.revealToggle(_:))
        revealViewController().rearViewRevealWidth = screenSize.width * 0.75
        view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    }
}

我该如何解决这个问题?

对不起,我很抱歉,但是请原谅我找不到更简短的解释方法

提前致谢

0 个答案:

没有答案