IBAction与按钮连接但需要空白

时间:2012-01-07 07:44:09

标签: objective-c ios interface-builder ibaction

我有IBAction,并且它与.xib中的按钮相关联。但是对于需要此代码的操作;

- (void) reportScore: (int64_t) score forCategory: (NSString*) category 
{
    GKScore *scoreReporter = [[GKScore alloc] initWithCategory:category];   
    scoreReporter.value = counter;
    [scoreReporter reportScoreWithCompletionHandler: ^(NSError *error) 
     {
         [self callDelegateOnMainThread: @selector(scoreReported:) withArg: NULL error: error];

         NSLog(@"Nice: %d", counter);  

     }];
}

有没有办法将我的按钮与虚空连接?或类似的东西?

- (IBAction) subScore {
//data
}

1 个答案:

答案 0 :(得分:1)

IBAction(和IBOutlet)仅用于让XCode的界面生成器(IB)知道存在一个函数。如果你想使用void,好的,但是你没有得到Interface Builder中显示的功能。

  

IBAction 是一个特殊关键字,仅用于告诉Xcode( Interface Builder )将方法视为目标 - 操作连接的操作。 IBAction被定义为 void

     

IBOutlet 是一个特殊的关键字,仅用于告诉Xcode( Interface Builder )将对象视为插座。它实际上被定义为无,因此它在编译时没有任何影响。

您可以设置功能(使用void定义,并且注意IBAction也可以,但不必在此处)到您的按钮目标,如下所示:

[yourButton addTarget:self action:@selector(yourButtonFunction:) forControlEvents:UIControlEventTouchUpInside];

通常,如果您以编程方式创建代码(不使用XCode的Interface Builder),则不再需要IBOutletIBAction。 ;)