回答
在iOS的動作方法,包括IBAction爲方法,可以具有以下任一簽名(見 「Target-Action in UIKit」):
- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)event
如果您使用接受發件人的方法簽名,則您可以訪問觸發該操作的對象。然後您可以訪問調用對象的屬性,包括其標題和標籤。您還可以將發件人與您可能已經擁有的指針進行比較,以確定哪個按鈕是此特定事件的發件人。
我喜歡比較指針,因爲我相信if (sender == self.nextPageButton)
比if (sender.tag == 4)
或if ([((UIButton *)sender).currentTitle isEqualToString:@"foo"])
更容易理解並且不太可能中斷。在IB中查看標籤不會告訴您代碼假定它們是什麼意思,以及它們是否重要。標題會隨着您更新UI或本地化您的應用程序而發生變化,而且這些更改也不需要更改代碼。
設置按鈕的tag
屬性。
您可以在界面生成器中執行此操作(只需查看字段)。
然後,在代碼:
if (sender.tag == 0) {
} else if (sender.tag == 1)
等
啊。很好的一個伴侶。謝謝! – Critter 2011-02-23 22:54:51
您無需明確設置標籤。您可以在.h文件中和他們的財產定義的UIButton的IBOutlets以及
@property (nonatomic , retain) IBOutlet UIButton *myButton;
和
-(IBAction) browse : (id) sender;
在.m文件
可以實現方法
方法-(IBAction) browse : (id) sender{
if((UIButton *)sender == myButton){/*add the action here*/}
}
在方法中添加更多if語句以獲得更多按鈕。請連接所有各個按鈕的IBOutlet,並連接選擇器瀏覽。
請記住在dealloc方法中釋放IBOutlets以防止任何內存泄漏。
希望這有助於!
- 1. 由多個UIButtons控制的多個UIImageView
- 2. 使用axis = 1聚合多個函數
- 3. 在1個函數內創建3個GGplots,1個函數內
- 4. 從NSArray與分頁創建多個UIButtons
- 5. 管理多個按下的UIButtons
- 6. 將多個UIButtons添加到UIView
- 7. 4個UIButtons,1個方法來改變標題?
- 8. 兩個UIButtons共享代碼
- 9. 當函數1調用函數1中的另一個函數2時,函數1從其他文件失敗
- 10. 用兩個UIButtons更改tableview數據源
- 11. 1全局函數或許多實例函數
- 12. 從多個UIButtons調用一個選擇器
- 13. 將ajaxStart函數限制爲2個ajax函數中的1個
- 14. 具有多於1個類型名稱的模板函數
- 15. 如何添加多發uibuttons編程
- 16. jQuery的數量1個或多個
- 17. UIButtons數組返回錯誤
- 18. Python函數:多個參數
- 19. 隱藏UIButtons
- 20. 函數返回1個UTF-8字符?
- 21. 一次只執行1個POST函數
- 22. jquery沒有超過1個函數
- 23. SQLite DATETIME函數'中斷''-1個月'?
- 24. 推UIViewController與許多UIButtons到UINavigationController
- 25. 是否可以在多個視圖中維護UIButtons?
- 26. 比較2 UIButtons
- 27. 動畫UIButtons
- 28. 斯威夫特。使用IBOutlet更改多個UIButtons
- 29. 滑過多個UIButtons以突出顯示/選擇
- 30. 使用UIScrollView和多個UIButtons滾動延遲
+1的答案比接受的答案要詳盡得多。 – 2011-02-24 13:13:51