前言
上次我使用MVC創建專案
所以流程是controller會add一個view
這樣的話controller就是view的父類別
今天就是要研究
如何讓父子重逢
互相呼叫傳值
父類別呼叫子類別
這就比較簡單
單純宣告子類別
直接可以使用該類別呼叫他的func
在父類別controller宣告
子類別TestView的變數
直接就可以使用TestView的testFunc Func
還蠻簡單的
let testView = TestView.init(frame: CGRect.init(x: self.view.frame.origin.x, y: self.view.frame.origin.y, width: UIScreen.main.bounds.width, height:
print(testView.testFunc())
子類別呼叫父類別
有時候要傳值給父類別的話
可能要透過呼叫父類別的func
初始化先新增子類別
override func viewDidLoad() {
super.viewDidLoad()
let testView = TestView.init(frame: CGRect.init(x: self.view.frame.origin.x, y: self.view.frame.origin.y, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height));
testView.delegate = self
self.view.addSubview(testView);
}
並且新增一個func準備給別人呼叫
func fatherFunc() -> String {
return "fatherFunc"
}
在子類別新增 Protocol
protocol takoProtocol {
func fatherFunc () -> String
}
在Class裡面宣告delegate
var delegate:takoProtocol?
基本設定是完成了
再來新增一個暫時Button來Demo
@IBAction func clickTestBtn(_ sender: Any) {
print(delegate!.fatherFunc())
}
這時候點擊按鈕就可以呼叫到父類別的fatherFunc
得到結果為
fatherFunc
這概念也是從OC轉過來
不知道Swift是不是也是這樣呼叫的
或是有更好的方法
這方法我先放在Git上給大家下載
Demo Link
Git
cymbalta 40mg pills glucotrol 10mg cost modafinil pill
laprosenal stomach medicine temporary relief for uti pain gram negative bacilli isolated urine