Objective c将滑块值传递给另一个类
Posted
技术标签:
【中文标题】Objective c将滑块值传递给另一个类【英文标题】:Objective c pass slider value to another class 【发布时间】:2014-07-30 18:02:44 【问题描述】:我有一个简单的问题,我花了很多时间试图解决这个问题。 我有一个带滑块的视图控制器:
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UISlider *slider;
@property (nonatomic) float a;
@end
@implementation ViewController
@synthesize slider,a;
- (IBAction)valueChanged:(id)sender
[self setA:self.slider.value];
我有另一个类,我想获得“A”值,即滑块的值
ViewController *vc = [[ViewController alloc]init];
NSLog(@"%f", [vc a]); //return zero
我做错了什么?
谢谢
【问题讨论】:
您创建了一个全新的ViewController
实例(您的vc
变量)。然后,您尝试从这个全新的视图控制器中获取 slider
值。然后,您尝试使用自己的滑块值更新这个新视图控制器的 a
属性。这有什么意义?
我在我的 SKScene 类中创建了 vc 变量,我想使用滑块值来控制球速。对不起,我更正了。我不想更新滑块值,只想在另一个类中正确获取它。
【参考方案1】:
您正在实例化一个新的视图控制器,这意味着它没有链接到您正在运行的当前 VC,其中滑块的值发生了变化。您必须获得对具有滑块的 VC 的引用,然后您可以使用点语法 NSLog(@"%f", activeVC.a);
【讨论】:
是的,但我不知道该怎么做。 你能帮我解决这个问题吗? 好的,你需要给我更多关于这个其他类如何与你的 VC 相关的细节。 我尝试获取滑块值的类是 SKScene 类的子类,与 ViewController 无关。我想获得滑块值来控制场景中的球速度。例如:ball.physicsBody.velocity = CGVectorMake(200*sliderValue, 200) 在这种情况下,听起来您正在尝试保存设置/配置,所以也许您应该使用 NSUserDefaults 来跟踪它。以上是关于Objective c将滑块值传递给另一个类的主要内容,如果未能解决你的问题,请参考以下文章
在一个线程中创建并在objective-C中传递给另一个线程的自动释放对象