2010-07-31 36 views
0

我正在加載一個plist文件並基於此文件創建按鈕。這些按鈕可以在應用程序運行期間隨時更改(這將觸發所有按鈕的更新等)。在沒有標籤的dynamiclly創建的按鈕上選擇正確的UIButton

一組按鈕代表一個類別列表。所以我可能會有一個房子按鈕,汽車按鈕等。不管按下哪個按鈕,它都會調用我的categoryButtonPressed:(id)發送者函數。我需要知道按鈕是什麼,並根據按下的按鈕(類別)加載第二組數據。

因此,如果我按房屋按鈕,該功能需要加載房屋數據,但我怎麼才能確定在該功能按下哪個按鈕。如果我使用標籤,我必須知道房屋按鈕是標籤1,汽車是標籤2等等。但是我不知道在閱讀那個文件之前是否還會有房子按鈕。我是否需要將標籤編碼到plist文件中?

OR有沒有辦法通過我的UIButtons數組來循環並確定?有什麼建議?最後,如果我創建了自己的擴展版本的UIButton,添加了一個「名稱」變量,那麼我是否仍然運氣不好,因爲該動作會通過UIButton基礎,並將擴展類與基地進行比較失敗正確?

感謝您的幫助!

回答

0

而在去年,如果我創造我自己的擴展 版本的UIButton的是增加了一個 「名」的變量,將我仍然 是出於運氣,因爲行動 會通過UIButton的基礎和 比較我擴展類到 基地總是會失敗正確?

該動作是通過任何控制權傳遞的,無論任何類,該動作是註冊的。創建您自己的自定義按鈕與其他屬性似乎是要走的路。

您也可以將按鈕的標籤設置爲按鈕數組中的索引或按鈕對應的plist中的索引。

+0

如果我確實創建了一個自定義按鈕並使用該按鈕,我將如何比較這兩個對象是否相等?對於Objective-C,我還是個新手。我只是使用==還是有一個類等於修飾符? – 2010-07-31 22:44:41

+0

有一個'isEqual:'方法,但除非您爲自定義類實現它,否則它會回到指針相等。指針平等就足夠了,除非類的不同實例可能是等價的。 – drawnonward 2010-08-01 06:49:39