2012-04-21 59 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

相关问题