我有一個有趣的場景。 我有一個包含一個按鈕的自定義TableViewCell類。 我想要做的是捕獲自定義單元類中按鈕的觸摸事件,併爲容器控件(ler)處理一個新事件。攔截UIEvents並將它們傳遞給父元素
這樣做的原因是我有一個帶有標記爲「存檔」按鈕的單元格。現在,我不想處理自定義TableViewController中的單元代碼,因爲我需要隱藏存檔按鈕,並告訴容器控件(或TableViewController)處理「單元格X中發生的存檔事件」,所以我想先截取按鈕調用。 我不想讓控制器知道單元格內部發生了什麼。這樣我有一些可重用和更乾淨的代碼。
因此,控制器應該能夠接收事件並形成事件來確定涉及哪個單元以便知道它需要刪除哪個記錄。 我可以通過NSNotificationCenter類實現這一點,並且讓觀察者爲我處理它,但如果我可以將它作爲事件引發,它將會很棒(我認爲,不知道是否會同意)。
這可以通過iOS開發完成嗎?
我希望我的問題有道理。
謝謝
編輯:看來我被誤解了。所以讓我說清楚(除非完全不可能),我不希望TableViewController知道單元格內的按鈕。控制器需要接收由單元生成的事件,因爲它捕獲了原始按鈕觸摸事件,並且在單元內部需要生成控制器可以捕獲的新事件。類似於你在.NET世界中可以做的事情。 但是,如果這不能完成請讓我知道。原因是清潔和可重用的代碼。
如果我正確理解你,你是否建議我使用一個委託,以便該按鈕被點擊時單元調用TableViewController? –
立即檢查我的編輯。 –
我不確定我的問題是否足夠清晰,因爲我不希望控制器知道單元內部發生的事情,它甚至不應該意識到該按鈕。我所希望的是控制器接收單元內部產生的事件,因爲單元捕獲了按鈕觸摸,然後將其引發給控制器。如果這是不可能的,請讓我知道,因爲我可以根據你的回覆做一些其他的事情,這給了我一個想法。 –