我希望能够让用户选择其中一个段,当他们加载该视图控制器时,他们选择的那个将被选中。默认情况下,我选择了“黑色”但是如果他们选择“白色”然后关闭他们的应用程序,请重新打开它“然后将选择白色。
以下是第一个故事板的分段控制器的代码:
- (IBAction)ChangeLook:(id)sender {
if (backgroundColour.selectedSegmentIndex == 0) {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPhoneStoryboard4inch-White"
bundle: nil];
MainMenuView_4inch_White *second = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuView_4inch-White"];
[self presentViewController:second animated:NO completion:nil];
NSLog(@"White Selected");
}
if (backgroundColour.selectedSegmentIndex == 1) {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPhoneStoryboard4inch"
bundle: nil];
MainMenuView_4inch *second = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuView_4inch"];
[self presentViewController:second animated:NO completion:nil];
NSLog(@"Black Selected");
}
}
以下是第二个故事板的分段控制器的代码:
- (IBAction)ChangeLook:(id)sender {
if (backgroundColour.selectedSegmentIndex == 0) {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPhoneStoryboard4inch-White"
bundle: nil];
MainMenuView_4inch_White *second = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuView_4inch-White"];
[self presentViewController:second animated:NO completion:nil];
NSLog(@"White Selected");
}
if (backgroundColour.selectedSegmentIndex == 1) {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPhoneStoryboard4inch"
bundle: nil];
MainMenuView_4inch *second = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuView_4inch"];
[self presentViewController:second animated:NO completion:nil];
NSLog(@"Black Selected");
}
}
我也可能有一件可能会有所帮助:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithInt:[backgroundColour selectedSegmentIndex]] forKey:@"whiteBackground"];
我知道这不会保存或加载它,但它可以帮助别人帮我解决问题。 所以我需要保存为两个视图控制器选择的选项。
*编辑*
我有这个游戏,我希望它与用户的设备颜色匹配或只是为了更多的选择。所以我有两个故事板,一个是黑色背景,另一个是白色背景。在两个故事板中,在主菜单中我有一个分段控件,可以选择更改颜色。假设我想要使用白色背景然后关闭应用程序,然后再打开它,我想要选择它们出现的选项(使用分段控件)。希望这可以帮助。谢谢!
答案 0 :(得分:0)
获取值,
NSInteger *segmentIndex = [[NSUserDefaults standardUserDefaults] integerForKey:@"whiteBackground"];
if(segmentIndex == 0)
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"iPhoneStoryboard4inch-White"
bundle: nil];
MainMenuView_4inch_White *second = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuView_4inch-White"];
[self presentViewController:second animated:NO completion:nil];
NSLog(@"White Selected");
}
商店价值,
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithInt:[backgroundColour selectedSegmentIndex]] forKey:@"whiteBackground"];
答案 1 :(得分:0)
我不知道你在做什么...... 看来你有两个不同的故事板或类似的东西。但是您只想选择UISegmentedControl的第二段?
然后只有一个故事板,一个视图控制器。您使用UISegmentedControl的插座链接,然后设置mySegmentedControl.selectedSegmentIndex = 0 // Or 1
...?
看起来你试图做一些非常简单的事情,但却使用了很多东西。
编辑后编辑:
然后这样做,
- (IBAction)ChangeLook:(id)sender {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults valueForKey:@"whiteBackground"] == 1) {
...// Use white storyboard
}
else {
...// Use normal storyboard
}
}