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);

从中获取“A”属性

【讨论】:

是的,但我不知道该怎么做。 你能帮我解决这个问题吗? 好的,你需要给我更多关于这个其他类如何与你的 VC 相关的细节。 我尝试获取滑块值的类是 SKScene 类的子类,与 ViewController 无关。我想获得滑块值来控制场景中的球速度。例如:ball.physicsBody.velocity = CGVectorMake(200*sliderValue, 200) 在这种情况下,听起来您正在尝试保存设置/配置,所以也许您应该使用 NSUserDefaults 来跟踪它。

以上是关于Objective c将滑块值传递给另一个类的主要内容,如果未能解决你的问题,请参考以下文章

在一个线程中创建并在objective-C中传递给另一个线程的自动释放对象

如何在标签中放置滑块值?

为啥滑块从错误的位置开始?

根据滑块值重新加载 UITableView 数据

在 Objective C 中,将浮点数乘以 100 有时会产生一个稍微出乎意料的结果

UIPageViewController 强制重新加载 ChildView 控制器