使用storyboad連接方式,當(dāng)一個(gè)頁面viewController1跳轉(zhuǎn)到另一個(gè)頁面ViewController2的時(shí)候,可以用present的方式進(jìn)行,但是傳值的時(shí)候,如果是ViewController2中有@IBOutlet的控件的時(shí)候,此時(shí)ViewController2還未啟動(dòng)viewDidLoad(),所以,控件為nil,無法直接操作控件,并且因?yàn)檫@些控件是聲明為weakde,也無法在外部初始化。
此時(shí)有兩個(gè)方法可以給控件傳值,以UILabel為例:
第一種方法:先調(diào)用loadView()方法,此時(shí)第二個(gè)界面就會(huì)啟動(dòng)viewDidLoad(),這樣就可以給ViewController2的控件傳值了,如下:

第一種方法

展示效果1

展示效果2
第二種方法:通過查看別人的博客,發(fā)現(xiàn)普通的變量是可以傳值的,不受到影響,那么我們可以在ViewController2中聲明合適的變量,然后在viewDidLoad()中賦值給控件類型即可,如下

第二種方法1

第二種方法2

展示效果3

展示效果4
兩種方法都可以達(dá)到相同的效果
【2020.7.27更新】
在使用過程中,發(fā)現(xiàn)使用第一種方法無法對(duì)viewController2的控件進(jìn)行事件響應(yīng)處理,比如UIButton的點(diǎn)擊事件等等,原因還未清楚,等待后續(xù)探查