【发布时间】:2014-02-14 21:47:16
【问题描述】:
我有一个应用程序,我根据用户在应用程序中的位置加载可变视图控制器。这是我的代码。
-(IBAction)buttonPressed:(id)sender;{
if (mission <1) {
gameViewController *detailViewController = [[gameViewController alloc] initWithNibName:@"gameViewController" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
detailViewController.which2 = which;
}
else if (mission > 0) {
NSString *viewController = @"gameViewController";
NSString *missionViewController = [viewController stringByAppendingString:missionNo];
Class controllerClass = NSClassFromString (missionViewController);
id detailViewController = [[controllerClass alloc] initWithNibName:@"gameViewController" bundle:nil];
NSLog(@"missionViewController;%@",missionViewController);
[self.navigationController pushViewController:detailViewController animated:YES];
detailViewController .which2 = which;
}
}
一切都很好,除了我想将一个字符串从第一个视图控制器传递到第二个视图控制器,这可能是一个。
如你所见,我在 detailViewController.which2 = which; 上方添加了代码
我在我的第一个视图控制器中创建了属性并合成了 NSString *which,在所有后续视图控制器中合成了 NSString *which2。在第一个任务是
其他 viewController 是 gameViewController1、gameViewController2 等。每个都相当长且复杂。但它们都加载到同一个 xib 文件 gameViewController 中。用户完成该游戏视图后,会有一个 UIlabel 更新为更高,因此他们可以继续进行系列中的下一个或返回主菜单。如果他们返回主菜单,数字将被添加到“gameViewController”,以便加载正确的。所以我不能指定要加载哪个视图控制器,因为它取决于用户的位置。因此,添加了任务# 的missionViewController 以加载正确的视图控制器。随后的每个视图控制器都有一个 which2 创建和合成。如果我们假设所有后续视图控制器都只有一个 UILabel,它将在其中显示字符串“which2”。我要做的就是将字符串“which”传递给下一个 viewController(无论是哪个)作为“which2 ”。
【问题讨论】:
-
你能贴出controllerClass吗
-
无法添加它太长了,但我已经编辑了我的原始帖子并提供了更多信息。
标签: iphone uiviewcontroller uinavigationcontroller xcode5