几天来我一直在尝试制作左侧滑出菜单。我无法让任何库与我的应用程序配合使用,因此我求助于 raywenderlich 的教程:
http://www.raywenderlich.com/78568/create-slide-out-navigation-panel-swift http://www.raywenderlich.com/78568/create-slide-out-navigation-panel-swift
但是,它并没有完全达到我想要的效果。我的主要问题是,当我滑出菜单时,导航栏也会随之滑出。我需要我的导航栏保持在原来的位置,并且只移动其下方的内容。
我尝试了“self.view.bringSubviewToFront(navigationController.navigationBar)”但这不起作用。
这是我想要完成的任务的屏幕截图。
我当前的设置是使用ContainerViewController
这是我的设置appDelegate's
didFinishLaunchingWithOptions`:
window = UIWindow(frame: UIScreen.mainScreen().bounds)
let containerViewController = ContainerViewController()
window!.rootViewController = containerViewController
window!.makeKeyAndVisible()
return true
此 ContainerViewController 正在获取 2 个 childViewController。
CenterViewControllerController(我的内容)
CenterViewController 将正确设置 navigationController。
var centerNavigationController: NavigationController!
var centerViewController: CenterViewController!
In the ContainerViewController
viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
centerViewController = UIStoryboard.centerViewController()
centerViewController.delegate = self
// wrap the centerViewController in a navigation controller, so we can push views to it
// and display bar button items in the navigation bar
centerNavigationController = NavigationController(rootViewController: LandingPageVC())
view.addSubview(centerNavigationController.view)
addChildViewController(centerNavigationController)
centerNavigationController.didMoveToParentViewController(self)
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePanGesture:")
centerNavigationController.view.addGestureRecognizer(panGestureRecognizer)
}
和 SidePanelViewController (我的菜单和有问题的菜单。)
var leftViewController: SidePanelViewController?
func addLeftPanelViewController() {
if (leftViewController == nil) {
leftViewController = SidePanelViewController()
addChildSidePanelController(leftViewController!)
}
}
func addChildSidePanelController(sidePanelController: SidePanelViewController) {
println("addChildSidePanelController")
view.insertSubview(sidePanelController.view, atIndex: 0)
addChildViewController(sidePanelController)
sidePanelController.didMoveToParentViewController(self)
}
The SidePanelViewController
目前没有navigationController。我确实尝试添加它。但这并没有达到预期的结果。
根据评论,我需要做的是以某种方式使 ContainerViewController 成为具有 navigationController 的控制器,因此它的两个 childController 也应该具有该功能?但是我不知道如何在该级别添加 navigationController。
任何帮助将不胜感激! (我没有使用故事板)
我尝试过的库:
ENSwiftSideMenu(做了我想做的事。但花了 2 天试图让它工作,但没有结果)
布莱恩降临节 YouTube 教程
Dekatotoro 的 SlideMenuControllerSwift
wanaya/幻灯片菜单
Swift 中的 SWRevealViewController