所以我有一個按鈕,它調用了這個方法簽名的IBAction方法,並且它在按鈕上工作得很好。iOS7也從ViewDidLoad調用一個IBAction方法
-(IBAction)getCurrentConditions:(id)sender
我也想從ViewDidLoad中調用同樣的方法。因爲我不需要傳遞ViewDidLoad中的任何東西,所以我在(id)發送者參數中傳入了什麼。
所以我有一個按鈕,它調用了這個方法簽名的IBAction方法,並且它在按鈕上工作得很好。iOS7也從ViewDidLoad調用一個IBAction方法
-(IBAction)getCurrentConditions:(id)sender
我也想從ViewDidLoad中調用同樣的方法。因爲我不需要傳遞ViewDidLoad中的任何東西,所以我在(id)發送者參數中傳入了什麼。
要麼通過nil
要麼通過self.someButton
如果您有按鈕的屬性引用。當然,通過nil
只適用於方法並不真的需要發件人。然後再次,如果方法不需要發送者,爲什麼還要有參數呢?
[self getCurrentCondition:self.someButton];
或
[self getCurrentCondition:nil];
或更改簽名:
- (IBAction)getCurrentCondition {
// Do stuff that doesn't need the sender
}
發件人是通常是 'IBOutlet中' 發送該消息,例如,一個UIButton。因此,您可以將該按鈕鏈接到您的視圖控制器並將其設置爲發件人。或者,如果您對發件人無所作爲,則只需發送零。
一般情況下,從文件的.xib名爲IBAction爲方法,但你可以從你的執行文件的任何地方使用選擇
[self performSelector:@selector(getCurrentConditions:) withObject:self.curConditionBtn afterDelay:0.0f];
好奇 - 爲什麼使用'performSelector:withObject:afterDelay:'直接調用方法? – rmaddy
只是另一種方法來調用方法...直接調用方法也可以使用.. –
'稱之爲[自getCurrentConditions:無]',除非在'getCurrentConditions'你使用'sender'。 – Larme