回答
在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. 使用1查詢查詢多個GET函數的多個表
- 7. 將多個UIButtons添加到UIView
- 8. 建議,與多個控件(UIButtons)工作
- 9. 4個UIButtons,1個方法來改變標題?
- 10. 的Javascript:從多個函數傳遞參數1個功能
- 11. Excel公式:聯盟多個範圍爲1個函數參數
- 12. 兩個UIButtons共享代碼
- 13. 當函數1調用函數1中的另一個函數2時,函數1從其他文件失敗
- 14. mysql函數返回1個字符串中的多個值
- 15. MySQL的函數改變1「是」多列
- 16. 用兩個UIButtons更改tableview數據源
- 17. 創建多個UIButtons,但只有最後一個可見
- 18. 1全局函數或許多實例函數
- 19. MIN函數需要1個參數
- 20. 函數不帶1個參數
- 21. 從多個UIButtons調用一個選擇器
- 22. 將ajaxStart函數限制爲2個ajax函數中的1個
- 23. 具有多於1個類型名稱的模板函數
- 24. 使用1函數使用ID淡入多個div
- 25. 如何添加多發uibuttons編程
- 26. 多個Jquery函數
- 27. 多個innerHTML函數
- 28. 多個jQuery函數?
- 29. ios多個UIButtons使用一個處理程序(通過IB)
- 30. UIButtons數組返回錯誤
+1的答案比接受的答案要詳盡得多。 – 2011-02-24 13:13:51