2015-03-08 9 views
5

Mam plik XIB, na którym utworzyłem kontrolkę podręczną na UIView. Ten kontroler pop-up uruchamia się, gdy przycisk jest wciśnięty w kontroler widoku 1. Mam przycisk na UIView, który po naciśnięciu chcę przedstawić inny kontroler widoku (View Controller 2). kod wygląda następująco:Przedstawienie obiektu ViewController na pliku XIB w pliku 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) 

    } 
} 

Mimo że przycisk jest wciśnięty, zawiesza się, nie ma błędów ani wywołań zwrotnych ani nic. Oczywiście normalnie by to działało, gdyby był zwykłym kontrolerem widoku, ale ponieważ robię to w widoku pop-up, który został animowany na innym widoku, myślę, że to jest problem?

Czy ktoś może pomóc?

dzięki

Odpowiedz

1

Upewnij self.storyboard nie jest zerowa.

Należy również potwierdzić, że VC2 jest jedną z tożsamości ViewController w pliku storyboardu.

Mam nadzieję, że to może ci pomóc.


jeśli VC2 jest w serii ujęć pliku, spróbuj użyć następującego polecenia, aby uzyskać VC2

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

czy VC2 jest w pliku nib, spróbuj użyć następującego polecenia, aby uzyskać VC2

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

+3

Jeśli prezentowany VC pochodzi z XIB, nie będzie miał storyboardu ... – Wain

+0

self.storyboard powraca jako zero? Dlaczego tak jest i jak mogę go pokonać? dzięki za dobrą odpowiedź przy okazji. –

6

Zrobiłem to w metodzie UICollectionViewdidSelectItemAtIndexPath.

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

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

ustawić ID z ViewController na taka sama jak nazwa pliku, więc chciałbym mieć pewność, aby odwoływać się do prawa ViewController.

Powiązane problemy