當我試圖鏈接到我的UIButton的方法只有一個參數時,我可以調用addTarget並且當按鈕被單擊時我的代碼成功運行 -使用帶有兩個參數的UIButton addTarget時無法識別的選擇器
[ myDetailButton addTarget:self action:@selector(hideMap:) forControlEvents:UIControlEventTouchUpInside];
(void)hideMap:(NSMutableArray*)arguments
,但如果我添加第二個參數來我hideMap方法,我打電話時,得到一個無法識別的選擇錯誤:
[ myDetailButton addTarget:self action:@selector(hideMap:) forControlEvents:UIControlEventTouchUpInside];
(void)hideMap:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
我看到這個錯誤不管我怎麼格式化每this question的addTarget參數 - -
action:@selector(hideMap)
action:@selector(hideMap:)
action:@selector(hideMap:event:)
如何使用addTarget調用具有多個參數的方法?
所以你說我正在嘗試做的 - 調用一個具有多個參數的方法 - 使用UIButton的addTarget是不可能的?那麼最好的方法是添加一箇中間方法,它將使用默認參數調用操作方法? –
您可以爲'addTarget'中使用的選擇器設置0,1或2個參數。但是你不能選擇參數。他們是固定的。發件人(按鈕)總是第一個,事件總是第二個。請記住,這是控制事件發生時調用您的方法的框架。它無法知道要傳遞一些你想要的任意數據。它只是說「事件發生」和控制。然後,您必須使用它來調用您需要的任何其他參數的任何其他方法。 – rmaddy
+1 maddy,很好的迴應。 @ storm_m2138添加一箇中間方法是你想要的。例如按鈕 - >按鈕回調 - >您的自定義方法 – Bergasms