我是一个新手 iOS 程序员,这是我的问题:
我有 map View 和分段控件,还有在 UIControlEventValueChanged 发生时调用的 changeMapType 函数,就像这样
// change map type with segmented control
- (IBAction)changeMapType:(id)sender
{
NSInteger i = [mapTypeControl selectedSegmentIndex];
if (i == 0){
[worldView setMapType:MKMapTypeStandard];
}
if (i == 1) {
[worldView setMapType:MKMapTypeSatellite];
}
if (i == 2) {
[worldView setMapType:MKMapTypeHybrid];
}
}
在 viewDidLoad 中,我想调用这个方法来设置第一个 map 类型。
[mapTypeControl setSelectedSegmentIndex:2];
[self changeMapType:nil];
上面的代码工作正常,但下面的代码工作正常
[mapTypeControl setSelectedSegmentIndex:2];
[self changeMapType:self];
所以最后,作为 SENDER 传递什么?哪个是对的?
最佳答案
由于您并没有真正对“sender
”(被传递到您的 IBAction 方法)做任何事情,因此您几乎可以传递任何您想要的东西。
使用“self
”或“nil
”,你应该没问题。
如果您 do 最终在您的任何 IBAction 中使用“sender
”,那么您确实需要关心您以编程方式发送的内容。当您单击与您的操作相关联的用户界面中的按钮或某个对象时,将发送对该对象的引用。
附言就像这里的答题派对!
关于ios - 自我 IBAction 和发件人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15289817/