我在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”的故事板引用
所以,当我这样做时,除了条形按钮项目不显示幻灯片菜单之外,每个东西都有效,因为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())
}
}
我该如何解决这个问题?
对不起,我很抱歉,但是请原谅我找不到更简短的解释方法
提前致谢