跳转页面与传值(Swift4)

使用storyboad连接方式,当一个页面viewController1跳转到另一个页面ViewController2的时候,可以用present的方式进行,但是传值的时候,如果是ViewController2中有@IBOutlet的控件的时候,此时ViewController2还未启动viewDidLoad(),所以,控件为nil,无法直接操作控件,并且因为这些控件是声明为weakde,也无法在外部初始化。

此时有两个方法可以给控件传值,以UILabel为例:
第一种方法:先调用loadView()方法,此时第二个界面就会启动viewDidLoad(),这样就可以给ViewController2的控件传值了,如下:


第一种方法

展示效果1

展示效果2

第二种方法:通过查看别人的博客,发现普通的变量是可以传值的,不受到影响,那么我们可以在ViewController2中声明合适的变量,然后在viewDidLoad()中赋值给控件类型即可,如下


第二种方法1

第二种方法2
展示效果3

展示效果4

两种方法都可以达到相同的效果

【2020.7.27更新】
在使用过程中,发现使用第一种方法无法对viewController2的控件进行事件响应处理,比如UIButton的点击事件等等,原因还未清楚,等待后续探查

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容