我有一个xib文件,我在UIView上创建了一个弹出控制器。当在视图控制器1上按下按钮时,此弹出控制器会动画。然后我在UIView上有一个按钮,按下时我想要呈现另一个视图控制器(视图控制器2)。代码如下:
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)
}
}
虽然按下按钮时它会崩溃,没有错误或回调或任何事情。显然,如果它只是一个普通的视图控制器,这通常会起作用,但是因为我在一个弹出的视图中进行了操作,它已经在另一个视图上进行了动画我认为这是问题所在?
有人可以帮忙吗?
感谢
答案 0 :(得分:9)
我是用UICollectionView
didSelectItemAtIndexPath
方法完成的。
// Register Nib
let newViewController = NewViewController(nibName: "NewViewController", bundle: nil)
// Present View "Modally"
self.presentViewController(newViewController, animated: true, completion: nil)
我将ID
的{{1}}设置为与文件名相同,因此我一定会引用正确的ViewController
。
答案 1 :(得分:0)
确保self.storyboard
不是零。
同时确认VC2
是故事板文件中ViewController的标识之一。
我希望它可以帮到你。
如果VC2在故事板文件中,请尝试使用以下命令获取VC2
let storyboard = UIStoryboard(name: "YourStoryboardName(maybe 'Main')", bundle: nil)
let vc2 = storyboard.instantiateViewControllerWithIdentifier("VC2") as VC2
或者如果VC2在nib文件中,请尝试使用以下命令获取VC2
let vc2 = VC2(nibName: "YourNibName", bundle: nil)