【发布时间】:2012-02-01 23:29:44
【问题描述】:
我是 Objective-c 编程的新手,但我卡住了。 我的视图控制器中有uislider,视图控制器的头文件中有浮动变量。 我还有一个新类,它改变了我的第二个视图的外观,我覆盖了 drawRect。
我只是获取 slider.value 的值并将其保存在我的 float 变量中,然后我尝试在我的类中访问 float 变量,因为这个变量定义了我要绘制的线条的宽度。
我的视图控制器的头文件
@interface ViewController : UIViewController
{
float lineWidth;
}
@property float lineWidth;
-(float)changingline;
@end
viecontroller.m //sliderForLine = UISlider
- (IBAction)valuechangedForLine:(UISlider *)sender
{
float sliderValue = sliderForLine.value;
lineWidth = sliderValue;
[self changingline];
}
-(float)changingline
{
NSLog(@"%f", lineWidth);
return lineWidth;
}
NSLog 说 lineWidth 有一些值
指定第二个 UIView 外观的类
#import "ViewController.h"
ViewController *oldView = [[ViewController alloc] init];
CGContextSetLineWidth(ctx, oldView.lineWidth);
NSLog(@"%f",oldView.lineWidth);
在这里,在第二类中,NSLog 总是说 0。
我很困惑,我现在什至不知道我为什么要使用 -(void)changeling :)
我只知道我错过了如何在类之间传递值的要点,有人可以解释我做错了什么吗?
提前致谢:]
【问题讨论】:
-
您能否更具体地说明如何将浮点值从一个类传递到另一个类。我似乎无法理解您的设置。
-
您正在创建一个全新的
ViewController对象,因此从未为该实例设置浮点值。您需要保留对现有视图控制器的引用或创建协议和相应的方法以将值传递给委托。
标签: iphone objective-c xcode ipad