新手在这里。这是一个iPhone实用程序项目。
首先要做的事情。我有一个协议:
@protocol FlipsideViewControllerDelegate
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller;
- (void)updateLabels:(NSString *)text :(BOOL)isOn;
@end
我通过这样做在我的MainViewController中实现了这个协议:
- (void)updateLabels:(NSString *)text :(BOOL)isOn {
[nameLabel setText:text];
if (isOn)
[onLabel setText:(@"ON")];
else
[onLabel setText:(@"OFF")];
}
现在我想在我的FlipsideViewController中使用名为updateLabels
的方法中的buttonClick
方法。我如何引用MainViewController中的updateLabels方法?
答案 0 :(得分:2)
[self updateLabels:@"foo" :YES];
顺便说一下,虽然可以为一个方法做一个未命名的参数(就像你有的一样),但是如果没有一个很好的理由,它通常被认为是不好的做法。 :)
答案 1 :(得分:0)
根据您的上述编辑,我认为您可能会对代理协议感到困惑。
委托是您拥有第二个对象,委托,采用委托协议。然后FlipsideViewController对象调用委托对象上的方法(该协议的一部分)。这意味着FlipsideViewController不应该实现FlipsideViewControllerDelegate协议,所以你不应该在它上面调用该协议的方法。