我希望我的所有应用页面在导航栏上都有一个侧面菜单按钮,打开相同的侧边菜单(通过SWRevealViewController
完成)
这是我的故事板结构:
我的初始视图控制器是SWRevealViewController
。导航控制器通过sw_front set segue连接到它,sw_rear set segue是侧菜单视图控制器(位于右上方)。
现在的问题是底部的所有视图控制器都需要打开相同的侧面菜单。我已经将侧面菜单视图控制器中的push segue显示给标签栏控制器。
此外,我在左下角的视图控制器类中编写了以下代码。左侧栏按钮项目的插座名为menuButton
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = #selector(SWRevealViewController.revealToggle(_:))
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
我无法理解错误。
注意:可能存在问题,因为主导航控制器的根视图控制器和标签栏是通过代码而不是segue连接的(因为segue在子选项卡的导航栏中出现问题)。
用于此的代码是:
let mainST = UIStoryboard(name: "Main", bundle: Bundle.main)
let VC = mainST.instantiateViewController(withIdentifier: "idTabBar") as! TabBarController
VC.index = tappedImageTag
present(VC, animated: true, completion: nil)
请帮忙。我使用的是xcode 8和swift 3。
编辑:我在sideMenuViewController中尝试了这个(显示在故事板图像的右上角)func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let vc = storyboard.instantiateViewController(withIdentifier: "idTabBar") as! TabBarController
vc.index = 0
let rvc:SWRevealViewController = self.revealViewController() as SWRevealViewController
rvc.pushFrontViewController(vc, animated: true)
}
当我从主页的侧边菜单通过此代码转到任何其他页面时,侧面菜单按钮也适用于该页面。 但如果我直接进入这些页面,我的侧边菜单就不会出现了。
我正在做的这是一个非常愚蠢的错误,但请帮我搞清楚。