Objective c 目标C-将一个值从UIViewController传递到UIView-我一直得到空值
首先,让我说我对目标C是新的 我基本上是试图将原始PriceOnGraph变量从ViewController(UIViewController)传递到GraphView(UIView)的原始变量。但是,当我尝试显示原始文件时,我一直得到0.00。我不明白到底是什么问题。以下是我的一些代码: GraphView.hObjective c 目标C-将一个值从UIViewController传递到UIView-我一直得到空值,objective-c,uiview,uiviewcontroller,Objective C,Uiview,Uiviewcontroller,首先,让我说我对目标C是新的 我基本上是试图将原始PriceOnGraph变量从ViewController(UIViewController)传递到GraphView(UIView)的原始变量。但是,当我尝试显示原始文件时,我一直得到0.00。我不明白到底是什么问题。以下是我的一些代码: GraphView.h @interface GraphView : UIView @property (nonatomic) double original; @end GraphView.m @impl
@interface GraphView : UIView
@property (nonatomic) double original;
@end
GraphView.m
@implementation GraphView
@synthesize original;
- (id)initWithFrame:(CGRect)frame
{
//some code here
}
- (void)drawRect:(CGRect)rect;
{
NSLog(@"%.2f", original);
//some more code here
}
@end
ViewController.m
@interface OtherViewController ()
@end
@implementation OtherViewController
@synthesize originalPriceOnGraph;
@synthesize graph;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
originalPriceOnGraph = 20.00;
graph = [[GraphView alloc] init];
graph.original = originalPriceOnGraph;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ViewController.h
@interface OtherViewController : UIViewController
@property (strong, nonatomic) GraphView *graph;
@property (nonatomic) double originalPriceOnGraph;
@end
提前谢谢你
编辑:我可以通过在OtherViewController和GraphView之间创建一个IBOutlet来解决这个问题。我还去掉了ViewController.m中GraphView的alloc init语句。谢谢大家的建议 使用:
self.graph = [[GraphView alloc] init];
self.graph.original = originalPriceOnGraph;
使用:
使用:
使用:
您确定GraphView的drawRect:方法在设置其“原始”属性之前没有被调用吗 如果是这样,请尝试使用original的默认值初始化GraphView的任何实例 在GraphView.h中:
-(id)initWithOriginal:(double)original;
在GraphView.m中:
-(id)initWithOriginal:(double)original
{
self = [super init];
if (self) {
[self setOriginal:original];
}
return self;
}
在ViewController.m中:
-(void)viewDidLoad
{
[super viewDidLoad];
originalPriceOnGraph = 20.00;
[self setGraph:[[GraphView alloc] initWithOriginal:originalPriceOnGraph]];
}
您确定GraphView的drawRect:方法在设置其“原始”属性之前没有被调用吗 如果是这样,请尝试使用original的默认值初始化GraphView的任何实例 在GraphView.h中:
-(id)initWithOriginal:(double)original;
在GraphView.m中:
-(id)initWithOriginal:(double)original
{
self = [super init];
if (self) {
[self setOriginal:original];
}
return self;
}
在ViewController.m中:
-(void)viewDidLoad
{
[super viewDidLoad];
originalPriceOnGraph = 20.00;
[self setGraph:[[GraphView alloc] initWithOriginal:originalPriceOnGraph]];
}
您确定GraphView的drawRect:方法在设置其“原始”属性之前没有被调用吗 如果是这样,请尝试使用original的默认值初始化GraphView的任何实例 在GraphView.h中:
-(id)initWithOriginal:(double)original;
在GraphView.m中:
-(id)initWithOriginal:(double)original
{
self = [super init];
if (self) {
[self setOriginal:original];
}
return self;
}
在ViewController.m中:
-(void)viewDidLoad
{
[super viewDidLoad];
originalPriceOnGraph = 20.00;
[self setGraph:[[GraphView alloc] initWithOriginal:originalPriceOnGraph]];
}
您确定GraphView的drawRect:方法在设置其“原始”属性之前没有被调用吗 如果是这样,请尝试使用original的默认值初始化GraphView的任何实例 在GraphView.h中:
-(id)initWithOriginal:(double)original;
在GraphView.m中:
-(id)initWithOriginal:(double)original
{
self = [super init];
if (self) {
[self setOriginal:original];
}
return self;
}
在ViewController.m中:
-(void)viewDidLoad
{
[super viewDidLoad];
originalPriceOnGraph = 20.00;
[self setGraph:[[GraphView alloc] initWithOriginal:originalPriceOnGraph]];
}
需要确定的是,viewDidLoad中GraphView的alloc/init是GraphView的唯一alloc/init。在类的一个实例中设置一个值并期望它出现在另一个实例中,这是一个典型的新手错误。需要确定的是,viewDidLoad中GraphView的alloc/init是GraphView的唯一alloc/init。在类的一个实例中设置一个值并期望它出现在另一个实例中,这是一个典型的新手错误。需要确定的是,viewDidLoad中GraphView的alloc/init是GraphView的唯一alloc/init。在类的一个实例中设置一个值并期望它出现在另一个实例中,这是一个典型的新手错误。需要确定的是,viewDidLoad中GraphView的alloc/init是GraphView的唯一alloc/init。在类的一个实例中设置值并期望它出现在另一个实例中,这是一个典型的新手错误。