1
我正在做一個簡單的customtableview項目。我有viewController.swift和customcell.swift文件。我在viewcontroller文件裏面有一個方法。我怎樣從customcell文件中調用該方法。提前感謝在swift中調用childcontroller的parentController方法
我正在做一個簡單的customtableview項目。我有viewController.swift和customcell.swift文件。我在viewcontroller文件裏面有一個方法。我怎樣從customcell文件中調用該方法。提前感謝在swift中調用childcontroller的parentController方法
以下是幾種方法來完成您的對象之間的溝通。
還有其他方法可以解決這個問題,但這些是前三個想到的。希望給你一些關於如何繼續的想法。
下面是委託模式的一個簡單示例。
你的父母是這樣的:
protocol ParentProtocol : class
{
func method()
}
class Parent
{
var child : Child
init() {
child = Child()
child.delegate = self
}
}
extension Parent : ParentProtocol {
func method() {
println("Hello")
}
}
你的孩子是這樣的:
class Child
{
weak var delegate : ParentProtocol?
func callDelegate() {
delegate?.method()
}
}
很好的解釋...但我試圖做的是在childcontroller parentcontroller創建對象。所以我可以通過childcontroller訪問parentcontroller方法。你能幫我解決這個問題嗎? – user3823935 2015-02-10 10:28:23
委託模式可以做你正在問的東西(給子控制器一個控制父項的對象)。您必須將父級控制器傳遞給子控制器以獲取它。 – PixelCloudSt 2015-02-10 17:14:36
如果你真的需要獲得父控制器對象的實例,並且沒有任何能力將它從父對象傳遞給子對象,那麼可以像單例對象那樣做一些非常難看的事情。坦率地說,當你考慮使用單例時,在很多情況下,現在是時候重新考慮你的架構了。 – PixelCloudSt 2015-02-10 17:20:56