我正在尝试建立一个基于 JSON 文件动态创建 ViewControllers 的项目。前几天我问了一个关于如何在这里创建这个的问题
所以我已经能够动态地创建 ViewControllers,并且在玩了更多之后,我已经很容易设置它,所以当应用程序加载时,它会生成多少个 ViewControllers 在 JSON 中指定。我还可以轻松地在它们之间导航,并且还可以从 JSON 中设置每个屏幕的按钮、视图等。我只是这样做
NSDictionary *MainJSON = [sJson JSONValue];
NSArray *theArray = [MainJSON valueForKey:@"viewControllers"];
然后遍历 theArray 创建一个 ViewController 实例。
我的问题是,我希望能够在 ViewControllers 之间传递数据。比如说我在 JSON 中设置它,所以第一个 ViewController 有一个文本字段。用户将输入一些数据,我希望能够对其进行设置,以便当他们导航到下一个屏幕时,该数据将被带到下一个屏幕。我目前像这样切换屏幕
-(void)nextScreen
{
for(int i = 0; i < [vcArray count]; i++)
{
int iID = i+1;
if([self.navigationController.viewControllers count] == iID)
{
ViewController *theVC = [vcArray objectAtIndex:i];
[self.navigationController pushViewController:theVC animated:YES];
break;
}
}
}
现在通常每个 ViewController 都会有一个类,所以在我推动的 ViewController 中,我可以在该类中做属性并合成一个 NSString,所以当将数据传递给下一个 ViewController 时,我会这样做。
vc.theString = textField.text
但是当我动态生成这些 ViewControllers 时,我不能这样做,因为我只使用一个 .h 和 .m 文件,并且我生成的每个 ViewController 都使用相同的 XIB 文件。有没有人知道我如何在这个设置中传递数据?