我有一个方法addClicked,当单击导航栏上的按钮时会调用该方法。我想稍后在代码中调用它,而不必单击按钮。调用此方法的语法是什么?
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self action:@selector(add_Clicked:)];
该函数的调用如下所示:
- (void) add_Clicked:(id)sender {
我试过了:
[self add_Clicked:];
[add_Clicked:];
[self add_Clicked: self];
最后的作品,但我不知道为什么。有人可以提供指向文档的链接,可以解释这是如何工作的吗?
答案 0 :(得分:1)
你必须为发件人传递一些东西。这就是最后一个有效的原因。
尝试[self add_Clicked:nil]
答案 1 :(得分:1)
最后一个有效,因为您将当前类添加为目标“target:self”,但目标是(id),因此发送者可以是理论上的任何对象。
答案 2 :(得分:1)
建议的另一个替代方案,取决于你在做什么,是为类添加另一个方法,并让调用的方法形成回调来调用它。
- (void) add_Clicked:(id)sender {
[self goAddSomething];
}
- (void) goAddSomething {
/* add the code here to handle add. */
}
然后在你的代码的另一部分,你可以调用[self goAddSomething];而不必使用nil。