比如我有两个view,view1和view2,view2在view1中的一个container里。
当显示viw1时,view2也是同时显示的。
当程序运行到view1时,我如何在view2的view controller中获取view1的对象呢?
实际上我是在view1中有一个操作,需要view2(tableview)来更新数据,所以想要view2做view1的代理,这个时候需要在view2中获取正在运行的view1对象。
可以為 view 設定 tag,然後需要的時候用 viewWithTag 來查找 - 不建議這樣做,太隱晦, 也容易出錯,而且查找效率也不高。
如果你在 controller 裡需要訪問某個 view,就應該把它連出來,保存一個引用在 controller 裡 - 正常來說的話, 應該這麼做。
根據你的需求,讓view2 做view1 的代理是不合適的,view 應當只負責顯示以及接受用戶的操作,操作完成之後需要什麼後續的行為,應該是controller 的責任,或者可以使用MVVM,view綁定到viewModel 上,當使用者進行了什麼操作之後,更新對應的viewModel,另外一邊的view 監聽到viewModel 的變化好,做出相應的回應。
可以為 view 設定 tag,然後需要的時候用 viewWithTag 來查找 - 不建議這樣做,太隱晦, 也容易出錯,而且查找效率也不高。
如果你在 controller 裡需要訪問某個 view,就應該把它連出來,保存一個引用在 controller 裡 - 正常來說的話, 應該這麼做。
根據你的需求,讓view2 做view1 的代理是不合適的,view 應當只負責顯示以及接受用戶的操作,操作完成之後需要什麼後續的行為,應該是controller 的責任,或者可以使用MVVM,view綁定到viewModel 上,當使用者進行了什麼操作之後,更新對應的viewModel,另外一邊的view 監聽到viewModel 的變化好,做出相應的回應。