Ios 如何在不显示数据的情况下将数据传递给ViewController?
我想从视图控制器将4个布尔值传递到我的ChooseLevel VC:Ios 如何在不显示数据的情况下将数据传递给ViewController?,ios,objective-c,Ios,Objective C,我想从视图控制器将4个布尔值传递到我的ChooseLevel VC: if (_moves >=4) { clvc.level1Completed3 = 1; } if (_moves == 3) { clvc.level1Completed2 = 1; } if (_moves == 2) { clvc.level1Completed1 = 1; } else clvc.level1Completed = 1; 但我不想展示挑肥拣瘦。它应该在后台工作。此
if (_moves >=4) {
clvc.level1Completed3 = 1;
}
if (_moves == 3) {
clvc.level1Completed2 = 1;
}
if (_moves == 2) {
clvc.level1Completed1 = 1;
} else
clvc.level1Completed = 1;
但我不想展示挑肥拣瘦。它应该在后台工作。此布尔值更改ChooseLevel VC中按钮的图像
如果我向ChooseLevel VC演示以下内容,我的代码可以正常工作:
ChooseLevelViewController *clvc = [self.storyboard instantiateViewControllerWithIdentifier:@"chooseLevelViewController"];
if (_moves >=4) {
clvc.level1Completed3 = 1;
}
if (_moves == 3) {
clvc.level1Completed2 = 1;
}
if (_moves == 2) {
clvc.level1Completed1 = 1;
} else
clvc.level1Completed = 1;
[self presentViewController:clvc animated:NO completion:^(){
}];
如果我不呈现ChooseLevel VC,什么都不会发生。我必须保存这些值吗?什么时候是,怎么做
谢谢 您需要在本地属性中存储
ChooseLevel ViewController
:
@property (nonatomic, strong) ChooseLevelViewController *chooseLevelViewController;
。。。这样您就可以在viewDidLoad
中实例化它一次:
- (void)viewDidLoad{
[super viewDidLoad];
// This is the only place you need to instantiate this view controller!
self.chooseLevelViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"chooseLevelViewController"];
}
。。。然后根据需要对其进行配置:
self.chooseLevelViewController.level1Completed1 = 1;
。。。最终在您喜欢的时候展示:
[self presentViewController: self.chooseLevelViewController animated:NO];
您的ChooseLevel VC是否在屏幕上而不显示?不,不是。它应该更新Background中的按钮我做了这个,但我不想[self-presentViewController:self.ChooseSevelViewController动画:否];在活跃的VC中。这是一个关卡的终点。然后我想发送level1Completed1=1作为示例。但我不想展示挑肥拣瘦的人,我要进入下一个层次。如果我想查看我的关卡进度,那么我会在游戏中打开ChooseLevel VC,查看我已经完成了多少关卡。你是说你不想从具有配置数据的视图控制器中显示
ChooseLevel视图控制器
,而是从不同的视图控制器中显示它?如果是这样,您真正想要的是在两个视图控制器之间传递级别完成数据。看见