Sto utilizzando il "plugin" SWRevealViewController per aiutare a produrre una barra laterale nella mia app. Ora in Objective-C, è possibile controllare la barra laterale utilizzando il seguente codice:Implementazione di SWRevealViewController in Swift
[self.sidebarButton setTarget: self.revealViewController];
[self.sidebarButton setAction: @selector(revealToggle:)];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
Dove sidebarButton è stato collegato UIBarButtonItem e IBOutlet. Ora sto cercando di applicare questo al mio codice Swift e ho avuto un successo misto.
Ho impostato un pulsante var @IBOutlet. Ora ho provato sia UIBarButtonItem che UIButton. Quando provo UIBarButtonItem, ho usato la seguente linea:
button = UIBarButtonItem(barButtonSystemItem: .Add, target: self.revealViewController(), action: "revealToggle:")
Tuttavia, questo non fa nulla e il pulsante non funziona. Tuttavia, se il pulsante ho impostato per essere un UIButton e aggangiarlo con il seguente:
button.addTarget(self.revealViewController(), action:"revealToggle:", forControlEvents:UIControlEvents.TouchUpInside)
Questo funziona per scorrere la barra fuori e in, ma non tramite gesti. Il problema è che non riesco ad aggiungere un UIButton alla barra degli strumenti (in StoryBoard comunque).
Quindi esiste un modo per implementarlo correttamente? Inoltre, è possibile aggiungere anche il riconoscitore di gesti?
Grazie
EDIT
Ok sono riuscito a far funzionare il gesto ginocchiera, anche se penso che il mio metodo è un po 'lungo senza fiato:
var swipeRight = UISwipeGestureRecognizer(target: self.revealViewController(), action: "revealToggle:")
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeLeft = UISwipeGestureRecognizer(target: self.revealViewController(), action: "revealToggle:")
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.view.addGestureRecognizer(swipeLeft)
Quindi, per favore correggere .
Qualsiasi aiuto con questo? – Prateek
Ciao. Ho lo stesso problema con il gesto. Ho provato la tua soluzione ma non sembra buona. Hai trovato un altro modo per farlo? Grazie. –
Ho trovato una soluzione migliore per attaccare il gesto. Mettilo sul ViewController anteriore. self.view.addGestureRecognizer (self.revealViewController() panGestureRecognizer().); –