Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在不显示数据的情况下将数据传递给ViewController?_Ios_Objective C - Fatal编程技术网

Ios 如何在不显示数据的情况下将数据传递给ViewController?

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; 但我不想展示挑肥拣瘦。它应该在后台工作。此

我想从视图控制器将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;
但我不想展示挑肥拣瘦。它应该在后台工作。此布尔值更改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视图控制器
,而是从不同的视图控制器中显示它?如果是这样,您真正想要的是在两个视图控制器之间传递级别完成数据。看见