本文目的为了拆解一个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)

# demo下载地址

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐