跳轉(zhuǎn)頁面與傳值(Swift4)

使用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ù)探查

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容