2012-04-21 11 views
0

ヘッダ・ファイル:SettingsVC.h ViewController.h二つの異なるヘッダファイル1つの実装ファイル

実装ファイル:ViewController.mでSettingsVC.m ViewController.m

、私はこの行を使用してSettingsVC.hをインポート上のコード

インポート "SettingsVC.h" 私は別のビューからステッパーから値を取得できます。

SettingsVC.hには、IBOutlet UIStepper * mainStepperというコード行があります。

ステッパーに割り当てられています。

このmainStepper.valueを実行してViewController.mからステッパーの値にアクセスしようとすると、動作しませんが、Settings.mで動作します。

バイキング

SettingsVC.hファイルの新しいもの

#import <UIKit/UIKit.h> 

@interface SettingsVC : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> { 

IBOutlet UILabel *mainTimeShow; 
IBOutlet UILabel *armTimeShow; 
IBOutlet UILabel *defuseTimeShow; 
IBOutlet UIStepper *armStepper; 
IBOutlet UIStepper *defuseStepper; 
IBOutlet UIStepper *mainStepper; 


} 

-(IBAction)goToClock; 
@property (nonatomic, retain) UIStepper *mainStepper; 
-(IBAction)mainTimeStepper; 
-(IBAction)armTimeStepper; 
-(IBAction)defuseTimeStepper; 

@end 

SettingsVC.mファイル

#import "SettingsVC.h" 

@interface SettingsVC() 

@end 

@implementation SettingsVC 

@synthesize mainStepper; 

@end 

ViewController.mファイル

#import "ViewController.h" 
#import "SettingsVC.h" 

@interface ViewController() 

@end 

@implementation ViewController 

-(void)here { 
SettingsVC.mainStepper.value; //Property mainStepper not found on object of type 'SettingsVC' 
} 

@end 
+2

関連ファイルのセクション全体を投稿してください。コードとして書式を設定するには、4つのスペースでインデントします。 – dasblinkenlight

+0

関連コードを掲載する必要があります。 – Vikings

+0

私はそれがすべて関連していると思います。 mainStepperにアクセスする方法は、View Controller実装ファイルから知る必要があります。 – user1342573

答えて

0

私は、私の答えを編集しましたこれはすべてを作るはずです明らかです。 1つのクラス(この場合はSettingsVC)にのみUIStepperを作成します。次に、他のクラスのプロパティを介して変数を取得することができます。単にSettingsVCをインポートします。

は、あなたはあなたがのViewControllerという名前のクラスがあるとしましょう

#import "ViewController.h" 
#import "SettingsVC.h" 

@implementation SettingsVC 

@synthesize mainStepper; 

@end 

SettingsVC.m

でプロパティを合成する必要がSettingsVC.h

#import <UIKit/UIKit.h> 

@interface SettingsVC : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> { 

// Your other instance variables 

} 

@property (nonatomic, strong) UIStepper *mainStepper; 

@end 

でプロパティを作成する必要があります。あなたが他のクラスでこれを使用する

#import "ViewController.h" 
#import "SettingsVC.h" 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    SettingsVC *settingsVC = [[SettingsVC alloc] init]; 
    settingsVC.mainStepper.value = 23.0; 

    NSLog(@"%f", settingsVC.mainStepper.value); 
} 

@end 

ので、あなたは、このプロパティを保持する必要があります:あなたは、このようなようUIStepperの値にアクセスします。通常は、BOOLなどのプリミティブ値を持つassignを使用します。

@property (nonatomic, strong) UIStepper *mainStepper; 

編集:ARCは自動的にsettingsVCをリリースしますので、明示的にリリースしないでください。

+0

これは、この(at)プロパティ(非構造、保持)を合成させませんIBOutlet UIStepper * mainStepper;これを行うことで(at)mainStepperを合成します。 – user1342573

+0

私は何をしていますか? – user1342573

+0

私はあなたが言ったことをしました。プロパティーのインプリメンテーションでインターフェース・コントローラーにその宣言がなければならないと言うインプリメンテーション・ファイルにはエラーがあります。新しいファイルを表示するために質問を編集しました。 2つの異なるストーリーボードの2つの異なるクラスファイルであることに注意してください。 – user1342573

関連する問題