iOS7也从ViewDidLoad调用IBAction方法



因此,我有一个带有按钮的视图,该按钮调用具有此方法签名的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];

最新更新