两个不同的头文件一个实现文件

时间:2012-04-21 00:52:28

标签: iphone xcode header

头文件: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

1 个答案:

答案 0 :(得分: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

假设您有一个名为ViewController的类。你可以像这样访问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,因此永远不会明确释放。