看板 MacDev 關於我們 聯絡資訊
大家好 我在教學網上看到uipicker https://goo.gl/gjqsto 他是另外寫在一個swift檔 我想請問當 // UIPickerView 改變選擇後執行的動作 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 改變選擇之後 假設我的顯示label在上一層 ViewController.swift裡面 我想要他即時的變動 要怎麼做會比較好呢? 網路上看到的教學都是label跟uipicker在同一個swift檔案裡面 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.67.96 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1549155493.A.809.html
cryinglove: 問題應該是不是同一個 class,若不是 用 delegate 回 02/03 09:17
cryinglove: 傳事件給 viewController, viewController 自己更新 02/03 09:17
cryinglove: label(這是封裝單一物件的概念,所以 picker 只做好 02/03 09:17
cryinglove: picker 的事) 02/03 09:17
MOONY135: 不是同一個class所以用delegate就好嗎 02/03 10:05
luckycan: 推軟工版主 02/03 10:13
luckycan: 是用delegate沒錯 02/03 10:13
luckycan: 第二層ViewController設置一個delegate,指定給第一層 02/03 10:15
luckycan: 當didSelectRow觸發後,呼叫delegate的func給第一層動作 02/03 10:18
MOONY135: 好 我用出來了 android好像也是這樣 02/03 11:49
G888888: delegate 02/03 14:00
gundam00: RxCocoa + RxSwift 02/06 21:22