我正在开发一个应用程序,我需要在视图控制器之间传递数据。我知道这是一个常见问题,但我找不到我的问题的答案:我能够将数据从 FirstViewController(MasterViewController
在我的情况下)传递到SecondViewController
( SettingsViewController
),但不能反过来。发生的情况是我从 SecondViewController.m 文件中的 FirstViewController 调用了一个方法。这有效,它记录数据。但是当我退出 SecondViewController(使用[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
)时,数据被重置。我尝试使用其他方法来传递数据,但没有奏效。我正在使用此代码来传递数据:
MasterViewController *vc = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
[vc setPorts:SelectedPorts];
我也尝试替换[vc setPorts:SelectedPorts];
为,vc.selectedCellIndexes = SelectedPorts;
但出现同样的问题。
该setPorts
方法在 FirstViewController.h 文件中声明,并且SelectedPorts
是我在 SecondViewController.m 中声明的变量(我检查的不是 nil)。
这是setPorts:
FirstViewController.m 中的:
- (void) setPorts:(id)selectedPorts {
selectedCellIndexes = selectedPorts;
NSLog(@"selectedCellIndexes : %@", selectedCellIndexes);
}
这记录了良好的值,但是当我将其登录viewWillAppear
到 FirstViewController.m 时,它会重置为我从 SecondViewController.m 调用该方法之前的值。
只是为了澄清一下,如果我不退出SecondViewController.m,则不会重置数据。
我确实阅读了你所有的评论,我真的很感谢你的帮助。为方便起见,我使用了一个全局变量。
谢谢你的帮助。