2015-03-08 14 views
5

Ho un file xib che ho creato un controller pop-up su un UIView. Questo controller pop-up si anima quando si preme un pulsante su un View Controller 1. Ho quindi un pulsante su UIView che quando premuto voglio presentare un altro View Controller (View Controller 2). codice è simile:Presentazione di un ViewController su un file xib in SWIFT

class PopUpViewControllerSwift : UIViewController { 

    @IBAction func goToVC2(sender: UIButton) { 

     self.removeAnimate() 

     let VC2: VC2 = self.storyboard?.instantiateViewControllerWithIdentifier("VC2") as VC2 
     var modalStyle: UIModalTransitionStyle = UIModalTransitionStyle.CoverVertical 
     VC2.modalTransitionStyle = modalStyle 
     presentViewController(VC2, animated: true, completion: nil) 

    } 
} 

Anche se tu quando viene premuto il pulsante si blocca, nessun errore o callback o niente. Ovviamente questo normalmente funzionerebbe se fosse solo un normale View Controller ma perché lo sto facendo all'interno di una Pop Up View che è stata animata su un'altra View. Penso che sia questo il problema?

Qualcuno può aiutare?

grazie

risposta

1

Assicurarsi self.storyboard non è nullo.

Verificare inoltre che VC2 sia una delle identità di ViewController nel file storyboard.

Spero possa aiutarti.


se VC2 è in un file storyboard, provare a utilizzare seguente comando per ottenere VC2

let storyboard = UIStoryboard(name: "YourStoryboardName(maybe 'Main')", bundle: nil) 
let vc2 = storyboard.instantiateViewControllerWithIdentifier("VC2") as VC2 

o se VC2 è in un file pennino, provare a utilizzare seguente comando per ottenere VC2

let vc2 = VC2(nibName: "YourNibName", bundle: nil)

+3

Se il VC che viene presentato proviene da un XIB, allora non avrà uno storyboard ... – Wain

+0

self.storyboard sta tornando come zero? Perché è così e come posso superarlo? grazie per la buona risposta a proposito. –

6

Ho eseguito questa operazione in un metodo UICollectionViewdidSelectItemAtIndexPath.

// Register Nib 
let newViewController = NewViewController(nibName: "NewViewController", bundle: nil) 

// Present View "Modally" 
self.presentViewController(newViewController, animated: true, completion: nil) 

ho impostato il ID del ViewController per lo stesso come il nome del file quindi vorrei essere sicuro di fare riferimento alla destra ViewController.

Problemi correlati