對於需要管理的每個IBOutlet,您都需要有一個指針,所以還需要有一個屬性。大多數時候屬性需要合成,然後在deallloc和viewDidUnload中都釋放。所以實際上,你需要重複編寫一小段代碼。你得到的是易於使用和清晰的代碼。現在,通過[self.view viewWithTag:]使用和訪問來自IB的對象可以節省一點點代碼空間,但由於需要記住或檢查IB是否有對象標記,因此可以省略一點點。那麼,爲什麼有人會打擾使用viewWithTag?您何時使用viewWithTag而不是IBOutlet屬性訪問IB對象?
0
A
回答
1
在我的情況下,我偶爾需要動態添加按鈕到視圖,並且需要知道哪個按鈕被按下,或者回想其他按鈕。
所以,我可以做的:
UIButton *desiredButton = [myView.viewWithTag:theTag]
我用聲明枚舉按鈕類型(或任何視圖類型),這樣我可以有把握地分配和後來回憶說:
typedef enum {
ButtonTypeDelete = 1,
ButtonTypeCancel = 2,
ButtonTypeAccept = 3,
....
..
} ButtonType
0
您可以在任何地方使用它,您不會從NIBS加載接口。 我個人從來沒有使用過interfacebuilder,通常它不會存儲指向你創建的所有子視圖的指針(這可能很多),但是爲它們加上標籤並稍後使用它們的標籤來識別它們。例如,我在UITableView的headerview中使用這種技術,我必須根據用戶輸入更改它。
1
有標籤的許多用途,也不一定對每個視圖元素都有出口。
- UITextfields在長形式填寫,這裏的標籤可以被用來自動將光標移動到下一個字段
- 甲相同IBAction爲可以連接到多個按鈕,動作可進行基於標籤。
思考如果我應該讓這個答案成爲一個wiki,以便其他人可以爲它做出貢獻。將等待其他人把他們的答案放在這裏。
相關問題
- 1. 是否可以在不聲明IBOutlet屬性的情況下訪問IB對象(比如UILabel)?
- 2. 可能訪問Matlab類屬性而不使用對象引用?
- 3. 訪問JavaScript的對象屬性,而不知道屬性名
- 4. 訪問IB中創建的對象的屬性 - Cocoa
- 5. 訪問對象是另一個對象的屬性 - 使用Javascript
- 6. 使用對象訪問屬性值
- 7. 訪問對象屬性使用符號
- 8. 使用jquery訪問「Request」對象屬性
- 9. 如果您有IBOutlet,但不是屬性,是否保留?
- 10. 如何在訪問對象屬性時避免使用eval?
- 11. 聲明對象時訪問屬性?
- 12. LuaInterface:訪問對象屬性
- 13. 訪問AppDelegate對象屬性
- 14. 訪問對象屬性
- 15. Javascript - 訪問對象屬性
- 16. 訪問對象屬性
- 17. jQuery - 訪問對象屬性
- 18. 訪問對象屬性[]
- 19. 訪問對象屬性中
- 20. 對象的訪問屬性
- 21. 如何訪問使用ib
- 22. 當IB沒有在ViewController上定義時,在IB中可以訪問`IBAction` /`IBOutlet`嗎?
- 23. 訪問Excel對象,而不使用VBA
- 24. JSP不能訪問對象屬性
- 25. 對象的不可訪問屬性
- 26. 角$ rootScope對象屬性不可訪問
- 27. 使對象屬性displayabe而不是對象django
- 28. jQuery對象屬性而不是類
- 29. 在Powershell的屬性名稱中使用「#」訪問對象屬性?
- 30. 我應該何時偏愛JOIN而不是單數屬性的屬性訪問?
第2點恰好顯示了我處理按鈕動作的首選方法之一。我忘了在我的答案中提到。 – Leonardo