2012-04-30 44 views
-5

可能重複:
How can I send two arguments in a selector method?行動:@選擇目標C

我寫一個按鈕的操作。但是我寫作選擇器的方法需要兩個參數。我怎麼會在代碼編寫方法名稱: 動作:@selector(myMethod的)

+0

-1,此用戶可以動態更改問題..! – Dinesh

+0

這是不可能的,你只能使用一個參數。順便說一句,這個問題在SO上已經被問過很多次了。 – Till

+0

@Dinesh每個用戶都可以 - 在5分鐘內就可以不觸發編輯事件。 – Till

回答

1

傳遞到「行動」方法的唯一參數是sender,這是觸發行動的看法(它是可選的)。所以你不能將多個參數傳遞給一個操作方法,因爲沒有多個參數要發送。

但是你可以簡單地從你的動作調用另一個方法,它可以包含你想要的任何參數。

- (void)viewDidLoad { 
    myButton.action = @sel(myAction); 
} 

- (void)myAction { 
    [self someMethod:@"first argument" withOtherArg:@"second argument"]; 
} 
0

第一件事:你應該接受詢問一些新的東西之前更多的答案,人們往往會幫不了你。

答案:

使用字典,你可以把你想傳遞的parameters.This 2個值遠離你只會有一個參數傳遞(字典本身)。它使得代碼更加清晰,併爲您提供了靈活性,可以在將來需要時傳遞更多參數。不要忘記留下一些評論,所以你不要忘記你在詞典裏放什麼。

+2

這個解決方案是不可能的,因爲我認爲一個uibutton只發送自己。 (除非你把它當作子類) – Pochi