我在一个iOS Swift项目中有多个视图控制器。我没有故事板,如果可能的话,我想避免它们。有没有办法切换到另一个viewcontroller.swift
文件(我们称之为view2.swift
),并让它成为按钮调用的函数的一部分?
我尝试过以下几种方法:
let storyboard: UIStoryboard = UIStoryboard(name: "myTabBarName", bundle: nil)
let vc: UIViewController = storyboard.instantiateViewControllerWithIdentifier("myVCID") as UIViewController
self.presentViewController(vc, animated: true, completion: nil)
上面的代码适用于故事板,但我希望调用另一个view2.swift
。这可以做到吗?
发布于 2014-06-08 00:59:30
试试这个:
let vc = ViewController() //change this to your class name
self.presentViewController(vc, animated: true, completion: nil)
使用Swift3:
self.present(vc, animated: true, completion: nil)
发布于 2014-10-10 03:40:40
对于那些得到空白/黑屏的人来说,这个代码对我来说是有效的。
let vc = self.storyboard?.instantiateViewController(withIdentifier: myVCID) as! myVCName
self.present(vc, animated: true, completion: nil)
要将"Identifier“设置为VC,只需转到故事板中VC的身份检查器。将“Storyboard ID”设置为您想要的标识符。请看下面的图像以供参考。
发布于 2015-12-13 22:49:27
对我来说,我在两个独立的导航控制器中有两个视图。我不得不使用以上几种方法的组合。
var vc = self.storyboard?.instantiateViewControllerWithIdentifier("WelcomeViewController") as! WelcomeViewController
var navigationController = UINavigationController(rootViewController: vc)
self.presentViewController(navigationController, animated: true, completion: nil)
Swift 3.x
let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "VC-ID" as! yourViewController
let navigationVC = UINavigationController(rootViewController: secondVC)
self.present(navigationVC, animated: true, completion: nil)
https://stackoverflow.com/questions/24099533
复制相似问题