2011-11-15 12 views
0

View Controllerファイルに含まれていても、ファイルの所有者には表示されないIBOutletが2つあります。どうして?IBOutletsがInterface Builderに表示されない

ここに、インターフェイスファイルと実装ファイルのコードを示します。 Xcodeの使用4.2。

CoinTossViewController.h

#import <UIKit/UIKit.h> 

@interface CoinTossViewController : UIViewController { 
    UILabel *status; 
    UILabel *result; 
} 

@property (nonatomic, retain)UILabel *status; 
@property (nonatomic, retain)UILabel *result; 

- (IBAction)callHeads; 
- (IBAction)callTails; 


@end 

ToinCossViewController.m

#import "CoinTossViewController.h" 
#import <QuartzCore/QuartzCore.h> 

@implementation CoinTossViewController 

@synthesize status, result; 

- (void)simulateCoinToss:(BOOL)userCalledHeads { 
    BOOL coinLandedOnHeads = (arc4random() % 2) == 0; 

    result.text = coinLandedOnHeads ? @"Heads" : @"Tails"; 

    if (coinLandedOnHeads == userCalledHeads) 
     status.text = @"Correct!"; 

    else 
     status.text = @"Wrong!"; 

    CABasicAnimation *rotation = [CABasicAnimation 
           animationWithKeyPath:@"transform.rotation"]; 
    rotation.timingFunction = [CAMediaTimingFunction  functionWithName:kCAMediaTimingFunctionEaseOut]; 
    rotation.fromValue = [NSNumber numberWithFloat:0.0f]; 
    rotation.toValue = [NSNumber numberWithFloat:720 * M_PI/180.0f]; 
    rotation.duration = 2.0f; 
    [status.layer addAnimation:rotation forKey:@"rotate"]; 

    CABasicAnimation *fade = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
    fade.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; 
    fade.fromValue = [NSNumber numberWithFloat:0.0f]; 
    fade.toValue = [NSNumber numberWithFloat:1.0f]; 
    fade.duration = 3.5f; 
    [status.layer addAnimation:fade forKey:@"fade"]; 
} 

- (IBAction)callHeads 
{ 
    [self simulateCoinToss:YES]; 
} 

- (IBAction)callTails 
{ 
    [self simulateCoinToss:NO]; 
} 

- (void) viewDidUnload 
{ 
    self.status = nil; 
    self.result = nil; 
} 

- (void) dealloc 
{ 
    [status release]; 
    [result release]; 
    [super dealloc]; 
} 
@end 

答えて

5

あなたはそこに定義された任意のIBOutletsを持っていません。ステータスと結果をアウトレットにしたいですか?その場合は、次の操作を行います。

@property (nonatomic, retain) IBOutlet UILabel *status; 
@property (nonatomic, retain) IBOutlet UILabel *result; 
+0

、ありがとうございました。 – pdenlinger

1

試みはにヘッダを変更:働い

#import <UIKit/UIKit.h> 

@interface CoinTossViewController : UIViewController { 
    UILabel *status; 
    UILabel *result; 
} 

@property (nonatomic, retain)IBOutlet UILabel *status; 
@property (nonatomic, retain)IBOutlet UILabel *result; 

- (IBAction)callHeads; 
- (IBAction)callTails; 


@end 
関連する問題