2012-04-21 66 views
0

頭文件:SettingsVC.h ViewController.h兩種不同的頭文件一個實現文件

實施文件:SettingsVC.m ViewController.m

在ViewController.m,我進口SettingsVC.h使用這條線的在頂部

導入「SettingsVC.h」 代碼,以便可以通過一個不同的視圖獲得從步進的值。

在SettingsVC.h我有一個行代碼,說IBOutlet中UIStepper * mainStepper;

分配給步進器。

當我嘗試做這個mainStepper.value它不工作訪問從ViewController.m步進的價值,但它在Settings.m感謝您的幫助工作。

對維京人的新東西

SettingsVC.h FILE

#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 FILE

#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

請您發表完整的相關文件部分?要將它們格式化爲代碼,請使用四個空格縮進。 – dasblinkenlight 2012-04-21 00:56:00

+0

您需要發佈相關代碼。 – Vikings 2012-04-21 01:02:37

+0

我認爲這是一切有關。只需要知道如何從視圖控制器實現文件中訪問mainStepper。 – user1342573 2012-04-21 01:06:24

回答

0

我編輯我的答案,這應該會讓一切變得容易清晰。您只能在一個類中創建UIStepper,在這種情況下爲SettingsVC。然後,您可以通過其他類中的屬性檢索變量,只需導入SettingsVC。

您需要SettingsVC.h

#import <UIKit/UIKit.h> 

@interface SettingsVC : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> { 

// Your other instance variables 

} 

@property (nonatomic, strong) UIStepper *mainStepper; 

@end 

創造財產您需要合成財產SettingsVC.m

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

@implementation SettingsVC 

@synthesize mainStepper; 

@end 

假設你有一個名爲視圖控制器類。你可以這樣訪問UIStepper的值:

#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 

你會在其他類中使用它,所以你需要保留這個屬性。通常只使用賦值,如BOOL等原始值。

@property (nonatomic, strong) UIStepper *mainStepper; 

編輯:ARC會自動釋放settingsVC給你,所以永遠不要明確釋放。

+0

它不讓我綜合這個(at)屬性(非原子,保留)IBOutlet UIStepper * mainStepper;通過這樣做(at)合成mainStepper; – user1342573 2012-04-21 01:30:26

+0

我該怎麼做? – user1342573 2012-04-21 14:20:32

+0

我做了你所說的,並且在實現文件中有一個錯誤,指出Property實現必須在接口控制器中聲明它。我編輯了這個問題向你展示了新的文件。請注意,它們是兩個不同故事板的兩個不同的類文件。 – user1342573 2012-04-21 15:48:22

相關問題