本文目的为了拆解一个storyboard中有多个控制器,跳转方法又都是用连线的方法
本来用segue连线的方法几年前就不用了.但是最近接了一个项目,里面还在用storyboard,一个storyboard里面有十多个控制器,而且全都是用连线跳转的控制器,想要重做一个控制器就要把里面的所有连线performSegue和里面的控制器都拆开.
在storyboard中创建连线
方法如下图:
在一个按钮上,或者其他能创建时间的上面按住ctrl键,然后拖拽鼠标左键,连线到另一个控制器
然后如下图,点击连线,给连线输入id:
使用连线
正常创建连线以后点击这个按钮就可以跳转到新的控制器
但是如果要在代码中使用,分下面两种情况:
连线本控制器跳转
performSegue(withIdentifier: "VC1segue", sender: nil)
连线其他控制器跳转
下面的viewController是从其他页面传值过来的控制器对象.有了这个对象就可以在其他任何控制器中执行跳转到连线位置的vc1
viewController?.performSegue(withIdentifier: "VC1segue", sender: nil)
storyboard下面多个控制器加载方法
获取箭头指向的控制器
//获取stroyboard
let sb = UIStoryboard (name: "Main", bundle: nil)
//获取箭头指向的控制器
let vc = sb.instantiateInitialViewController()
一个storyboard多个控制器,获取其中一个
首先,需要给storyboard里面的控制器,添加Storyboard Id,这样通过代码才能找到指定的控制器,如下图:
代码调用
let sb = UIStoryboard (name: "Main", bundle: nil)
//一个storyboard里面有多个控制器时候,通过控制器上的Storyboard Id返回控制器
let vc = sb.instantiateViewController(withIdentifier: "VC1id")
navigationController?.pushViewController(vc, animated: true)