iOS7也从ViewDidLoad调用iAction方法

iOS7也从ViewDidLoad调用iAction方法,ios,objective-c,methods,Ios,Objective C,Methods,所以我有一个视图,其中有一个按钮,它用这个方法签名调用一个iAction方法,从这个按钮开始它就可以正常工作 -(IBAction)getCurrentConditions:(id)sender 我还想从ViewDidLoad中调用相同的方法。由于我不需要从ViewDidLoad中传递任何内容,因此我在(id)sender参数中传递什么。如果按钮有属性引用,则传递nil或传递self.someButton。当然,传递nil仅在方法不真正需要发送方时有效。再说一次,如果方法不需要发送方,为什么还

所以我有一个视图,其中有一个按钮,它用这个方法签名调用一个iAction方法,从这个按钮开始它就可以正常工作

-(IBAction)getCurrentConditions:(id)sender

我还想从ViewDidLoad中调用相同的方法。由于我不需要从ViewDidLoad中传递任何内容,因此我在(id)sender参数中传递什么。

如果按钮有属性引用,则传递
nil
或传递
self.someButton
。当然,传递
nil
仅在方法不真正需要发送方时有效。再说一次,如果方法不需要发送方,为什么还要麻烦使用参数呢

[self getCurrentCondition:self.someButton];

或将签名更改为:

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

发送方通常是发送消息的“IBOutlet”,例如UIButton。因此,您可以将该按钮链接到视图控制器,并将其设置为发送者。或者,如果您对发送方不做任何处理,您可以只发送nil。

通常,iAction方法从.xib文件调用,但您可以使用选择器从实现文件中的任何位置调用它

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

[self-getCurrentConditions:nil]
,除非在
getCurrentConditions
中使用
sender
。好奇-为什么要使用
performSelector:withObject:afterDelay:
直接调用该方法?这是调用该方法的另一种方法。。。也可以直接调用该方法。。
[self performSelector:@selector(getCurrentConditions:) withObject:self.curConditionBtn afterDelay:0.0f];