2014-04-19 48 views
0

所以我有一個按鈕,它調用了這個方法簽名的IBAction方法,並且它在按鈕上工作得很好。iOS7也從ViewDidLoad調用一個IBAction方法

-(IBAction)getCurrentConditions:(id)sender 

我也想從ViewDidLoad中調用同樣的方法。因爲我不需要傳遞ViewDidLoad中的任何東西,所以我在(id)發送者參數中傳入了什麼。

+0

'稱之爲[自getCurrentConditions:無]',除非在'getCurrentConditions'你使用'sender'。 – Larme

回答

0

要麼通過nil要麼通過self.someButton如果您有按鈕的屬性引用。當然,通過nil只適用於方法並不真的需要發件人。然後再次,如果方法不需要發送者,爲什麼還要有參數呢?

[self getCurrentCondition:self.someButton]; 

[self getCurrentCondition:nil]; 

或更改簽名:

- (IBAction)getCurrentCondition { 
    // Do stuff that doesn't need the sender 
} 
1

發件人是通常是 'IBOutlet中' 發送該消息,例如,一個UIButton。因此,您可以將該按鈕鏈接到您的視圖控制器並將其設置爲發件人。或者,如果您對發件人無所作爲,則只需發送零。

0

一般情況下,從文件的.xib名爲IBAction爲方法,但你可以從你的執行文件的任何地方使用選擇

[self performSelector:@selector(getCurrentConditions:) withObject:self.curConditionBtn afterDelay:0.0f]; 
+0

好奇 - 爲什麼使用'performSelector:withObject:afterDelay:'直接調用方法? – rmaddy

+0

只是另一種方法來調用方法...直接調用方法也可以使用.. –