因此,我有一个带有按钮的视图,该按钮调用具有此方法签名的IBAction方法,并且从按钮可以很好地工作。
-(IBAction)getCurrentConditions:(id)sender
我还想从ViewDidLoad中调用相同的方法。我应该在(id)sender参数中传递什么,因为我不需要从ViewDidLoad传递任何东西。
发送者通常是发送消息的"IBOutlet",例如UIButton。因此,您可以将该按钮链接到您的视图控制器,并将其设置为发件人。或者,如果你对发件人什么都不做,你可以不发送。
如果有对按钮的属性引用,则传递nil
或传递self.someButton
。当然,只有当方法并不真正需要发送方时,传递nil
才有效。再说一遍,如果该方法不需要发送方,为什么还要麻烦拥有参数呢?
[self getCurrentCondition:self.someButton];
或
[self getCurrentCondition:nil];
或者将签名更改为:
- (IBAction)getCurrentCondition {
// Do stuff that doesn't need the sender
}
通常,IBAction方法从.xib文件调用,但您可以使用选择器从实现文件中的任何位置调用它
[self performSelector:@selector(getCurrentConditions:) withObject:self.curConditionBtn afterDelay:0.0f];