Ios 从ViewDidLoad调用按钮操作

Ios 从ViewDidLoad调用按钮操作,ios,objective-c,Ios,Objective C,在调用操作按钮时,默认情况下从viewDidLoad说出id的值是多少?比如说 - (IBAction)findInvoice:(id)sender { .... .... } 我目前正在使用[self findInvoice:nil];在viewDidLoad中,我将发票引用传递给可编辑的文本字段。它起作用了。对吗 谢谢这样做没关系,但在这种情况下,我更喜欢将逻辑移到一个单独的方法中,并从任何地方调用它 - (void)findInvoice { ... } - (IBActio

在调用操作按钮时,默认情况下从viewDidLoad说出id的值是多少?比如说

- (IBAction)findInvoice:(id)sender {
....
....
} 
我目前正在使用[self findInvoice:nil];在viewDidLoad中,我将发票引用传递给可编辑的文本字段。它起作用了。对吗


谢谢

这样做没关系,但在这种情况下,我更喜欢将逻辑移到一个单独的方法中,并从任何地方调用它

- (void)findInvoice {
    ...
}

- (IBAction)findInvoiceButtonTapped:(id)sender {
    [self findInvoice];
}

- (void)viewDidLoad {
    [self findInvoice];
}

你的电话没有问题。确保在
findInvoice
方法中使用的
sender
未用于任何其他目的

单击按钮时,
(id)sender
应该是单击的按钮。它表示数据类型为
id
。因此,您可以手动传递nil或任何您需要的值

您可以通过两种方式调用此方法

[self findInvoice:nil]; //sender should be nil;

[self findInvoice:self.settingsButton];//sender should be settingsButton;
您还可以在单击按钮时触发它

- (IBAction)findInvoice:(id)sender {

  UIButton *btnClicked = (UIButton *)sender; //it should be nil when called as [self findInvoice:nil];

}

你为什么问我们这是否有效?你运行了代码。它到底有没有用?@rmaddy它确实有用。我这样问是因为我不想有一个未知的问题,如果有任何后续处理未知问题是测试的目的。一般来说,你所做的一切都很好。是您的代码决定它是否正常。@user1509593您应该阅读文档而不是询问。
sender
的值是操作的发送者,即。E调用该方法的
UIControl
实例;在这种情况下是按钮本身。+1,这就是我所说的,这是正确的方法。如果他出于其他目的需要发件人,该怎么办?我更喜欢这个答案。我什么都不做,谢谢你帮了我。