具有分段视图在不同视图中创建操作

时间:2014-04-18 21:40:52

标签: ios objective-c

我有一个跟踪你的速度的应用程序。我有一个设置页面,其上有一个分段控件,可在mph和kmh之间切换。设置视图控制器和主视图控制器连接到同一个类。当分段控件在主视图中时它运行良好但是一旦我将它放入设置视图控制器,即使它连接到同一个插座,它也不起作用。如何在主视图控制器中对分段控制器进行控制?

2 个答案:

答案 0 :(得分:0)

与任何UIControl一样,您可以使用addTarget:action:forControlEvents:添加任何对象作为控件事件的目标。

在文档中阅读更多here。 还有Target-Action guide

答案 1 :(得分:-1)

好的,所以我使用了NSUserDefaults

在我的设置中查看控制器...

- (IBAction)selectUnits:(id)sender
{
    NSLog(@"selected units");
    if (self.units.selectedSegmentIndex == 0)
        [[NSUserDefaults standardUserDefaults] setObject:@"imperial" forKey:@"units"];
    else
        [[NSUserDefaults standardUserDefaults] setObject:@"metric" forKey:@"units"];
}

在我的主视图控制器

 NSString *unitsSelected = [[NSUserDefaults standardUserDefaults] objectForKey:@"units"];
if(unitsSelected == NULL || [unitsSelected isEqualToString:@"imperial"])
{
    speedLabel.text = [NSString stringWithFormat:@"%.2f", [location speed]*2.236936284];
    altitudeLabel.text = [NSString stringWithFormat:@"%.2f", [location altitude]*3.2808399];
}
else
{
    speedLabel.text = [NSString stringWithFormat:@"%.2f", [location speed]*3.6];
    altitudeLabel.text = [NSString stringWithFormat:@"%.2f", [location altitude]];
}

这完美无缺!