2015-04-22 18 views
7

C'è un grande post sul blog sopra a http://www.appcoda.com/tag/swrevealviewcontroller/ che va in per la creazione di SWRevealViewController che è una grande componente per la diapositiva di menu laterali (https://github.com/John-Lluch/SWRevealViewController)segue manuale con SWRevealViewController a Swift

Purtroppo, non ci sono esempi sopraffina di come eseguire un seguito manuale.

Ha adottato un approccio più pulito allo storyboard support. SWRevealViewControllerSegue è ora deprecato e dovresti utilizzare SWRevealViewControllerSegueSetController e SWRevealViewControllerSeguePushController.

Ho provato qualcosa sulla falsariga di:

let navigationController = self.window?.rootViewController as! SWRevealViewController; 

let viewController = navigationController.storyboard?.instantiateViewControllerWithIdentifier("ImportFileSelect") as! ImportFileSelect 

navigationController.showViewController(viewController, sender: self) 

Questo non funziona però. Qualche idea? Ho spulciato il web per esempi rapidi, il mio prossimo passo è imparare l'obiettivo c!

+0

Quale errore vuoi arrivare e dove? – EmirC

risposta

0
  1. Scaricare il modulo zip del progetto SWRevealViewController Github.
  2. Trascinare i file SWRevealViewController.m e SWRevealViewController.h dalla cartella zip (cartella SWRevealViewController) al progetto, quindi fare clic su "Sì" nel messaggio "Si desidera configurare un'intestazione di collegamento Objective-C?"
  3. Dai uno sguardo allo storyboard nel progetto RevealControllerStoryboardExample2. Progetta il tuo storyboard con questo esempio.
+0

Grazie, ma mi stavo chiedendo specificatamente di swift. Posso vedere che il codice qui https://github.com/John-Lluch/SWRevealViewController/blob/master/RevealControllerExample2/RevealControllerProject2/RearViewController.m potrebbe farlo, ma non posso tradurre questo in modo rapido. –

+0

Gli storyboard non dipendono da Swift o Obj-C. La mia risposta è specificata per Swift, dai un'occhiata al secondo passaggio. –

+0

E il tuo link è sbagliato, questo file ti sarà utile https://github.com/John-Lluch/SWRevealViewController/blob/master/RevealControllerStoryboardExample2/RevealControllerStoryboardExample2/en.lproj/MainStoryboard.storyboard Scarica tutto il progetto e dai uno sguardo . –

3

Ho fatto qualche progresso. Posso caricare un nuovo controller di visualizzazione, ma non si anima in alcun modo. Il codice per fare questo, su un pulsante di scatto è:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("TARGET_VIEW_CONTROLLER") as! UIViewController 
var rvc:SWRevealViewController = self.revealViewController() as SWRevealViewController 
rvc.pushFrontViewController(vc, animated: true) 
0

Questo non è come dovrebbe essere fatto, ma almeno ho trovato un modo per farlo.

Nel TableViewController dove u avere il menu a scorrimento fare qualcosa come:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     if(indexPath.row == <some position>){ 
      let vc: AnyObject! = self.storyboard?.instantiateViewControllerWithIdentifier("YOUR_DESTINATION_IDENTIFIER") 
      self.showViewController(vc as! SWRevealViewController, sender: vc) 
     } 

Quello che soddisfano la condizione Segue con l'animazione di default, non come la diapositiva menu fa normalmente.

Dopo, in storyboard, fare un normale controllo Rivela push View Controller, e fintanto che non soddisfa la condizione in cui si esce dalla diapositiva menu normalmente

11

Per lavorare è necessario seguenti operazioni:

  • è necessario creare un'istanza del SWRevealViewController e poi attaccarlo al controller principale.
  • Quindi creare un'istanza del controller di destinazione.
  • quindi creare un controller di navigazione e impostare il controller di destinazione come RootViewController
  • spingere Infine il controller di navigazione con SWReveal

    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    
    let sw = storyboard.instantiateViewControllerWithIdentifier("SWRevealViewController") as! SWRevealViewController 
    
    self.view.window?.rootViewController = sw 
    
    let destinationController = self.storyboard?.instantiateViewControllerWithIdentifier("StoryboardID") as! NameOfViewController 
    
    
    let navigationController = UINavigationController(rootViewController: destinationController) 
    
    
    
    sw.pushFrontViewController(navigationController, animated: true) 
    
+0

Questo funziona per me ma prima assicurati che la connessione della story board sia disconnessa. – vijay

+0

grazie al suo grande lavoro :-) – seggy

+0

grazie! per me funziona –

Problemi correlati