2017-01-23 13 views
3

So habe ich einen Tabellenansicht-Controller und mit https://github.com/jonkykong/SideMenu ich versuche, eine "Folie in" Seitenleiste anzuzeigen, die funktioniert, aber es zeigt mir nicht die Ansicht, die ich in der Seitenleiste will schwarz istSwift SideMenu Show-View-Controller

enter image description here

// Define the menus 
let menuLeftNavigationController = UISideMenuNavigationController() 
menuLeftNavigationController.leftSide = true 
// UISideMenuNavigationController is a subclass of UINavigationController, so do any additional configuration of it here like setting its viewControllers. 
SideMenuManager.menuLeftNavigationController = menuLeftNavigationController 

// Enable gestures. The left and/or right menus must be set up above for these to work. 
// Note that these continue to work on the Navigation Controller independent of the View Controller it displays! 
SideMenuManager.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar) 
SideMenuManager.menuAddScreenEdgePanGesturesToPresent(toView: self.navigationController!.view) 

Wenn es klickt auf die Schaltfläche Sidebar ich das haben, was die Animation erstellt, aber zeigt nicht die Viewcontroller

func someAction(){ 
    present(SideMenuManager.menuLeftNavigationController!, animated: true, completion: nil) 
    debugPrint("clicked") 
} 

enter image description here

+0

das gleiche Problem. Leider fällt uns Autor aus Fragen :( – djdance

Antwort

0

kann ich empfehlen JASidePanels

Es ist ziemlich einfach mit und es funktioniert einfach. Sie erstellen einen JASidePanelController, setzen diese Klasse auf den leeren Viewcontroller in Ihrem Storyboard und machen diesen Controller initial. (Vergessen Sie nicht zu import JASidePanels an der Spitze der Klasse)

Dann in dieser Klasse, die Sie Implementierung awakeFromNib() Methode wie folgt:

leftPanel = ..//instantiating menu controller 
let centerController = ...//instantiating center controller 
centerPanel = UINavigationController(rootViewController: centerController) 

Das ist es. Sie Controller über ihre ID instanziieren kann, die können in Identity Inspector

let stb = UIStoryboard(name: "Main", bundle: nil) //instantiating a storyboard we will use for instantiating controllers 
let someController = stb.instantiateViewController(withIdentifier: "here_your_identifier_goes") as! YourControllerClass 

+0

sogar nicht swift 2 ... Mitleid – djdance

+0

Verlassen Sie einfach Swift 2 :) – SwiftStudier

+0

Ich meine, JASidePanelController in ObjC ( – djdance

2

Die Antwort eingestellt werden im Kommentar des Snippets Sie auf dem Laufenden:

// UISideMenuNavigationController is a subclass of UINavigationController, 
// so do any additional configuration of it here like setting its viewControllers. 
1

Sie InteractiveSideMenu verwenden können Bibliothek zum Implementieren des Einblendmenüs. Es ist eine ziemlich neue und gut unterstützte Bibliothek, die einfach zu implementieren ist. Mit vielen Anpassungsmöglichkeiten können Sie sogar mehr als nur eine normale Seitenleiste nutzen.

image

+0

Das ist keine Antwort auf die Frage.Ich kann sicherlich Empfehlungen für andere Frameworks sehen, wenn die Frage von einer ist, die schlecht unterstützt wird, aber SideMenu hat> 1700 Sterne auf GitHub, wird bereits von Swift 4 unterstützt und hat eine sehr aktive Entwicklung. –

1

Auf der Repo-Readme, werden Sie Ihre Antwort, werfen Sie einen Blick auf die Anpassung Abschnitt https://github.com/jonkykong/SideMenu#sidemenumanager finden.

Einfach gesetzt menuFadeStatusbar = false

SideMenuManager.default.menuFadeStatusBar = false 

Von diesen Link finden Sie die folgenden Informationen: „Zeichnet die menuAnimationBackgroundColor hinter der Statusleiste Standard wahr ist Wenn menuFadeStatusBar wahr ist, diese Farbe.. verwendet, um es zu verblassen. Standard ist schwarz. "

+0

Danke, es funktioniert für mich. –

0
 let btnMenu:UIButton = UIButton() 
    btnMenu.frame = CGRect(x: 20*valuePro, y: 20*valuePro, width: 40*valuePro, height: 40*valuePro) 
    btnMenu.backgroundColor = .red 
    btnMenu.addTarget(self, action: #selector(self.displayMenu), for: .touchUpInside) 
    self.view.addSubview(btnMenu) 
@objc func displayMenu(sender: UIButton!) { 
    print("Button Clicked") 
    present(SideMenuManager.default.menuLeftNavigationController!, animated: true, completion: nil) 
} 
Verwandte Themen