0

有人会认为我可以很容易地找到这个问题的答案,也许我错过了,但这里是。

我的应用程序包含几个视图,其中主视图显示一堆信息,它通过其他视图逐步从用户、麦克风和相机收集。这一切都应该以一个高潮迭起的“提交按钮”结束。那时数据被安全地存储(目前在一个 sql 数据库中......但这是另一回事)。

一旦完成,我希望整个过程重新开始,这意味着将视图重新初始化为原始状态。在 android 中,我可以抛出一个新的意图并摧毁旧的意图。

我想我应该从应用程序委托开始(见下面的代码)。现在的问题是,我从这里去哪里?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    self.mainViewController.managedObjectContext = self.managedObjectContext;

    [self.window makeKeyAndVisible];
    return YES;
}
4

2 回答 2

0

因此,经过相当多的挖掘,反复试验。我找到了一些我想要的东西。

我在应用程序委托中创建了一个特殊函数,它执行以下操作:

- (void) newScreen
{
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.window.rootViewController = self.mainViewController;
    self.mainViewController.managedObjectContext = self.managedObjectContext;
}

然后从主视图控制器,我调用该函数

[(AppDelegate *)[[UIApplication sharedApplication] delegate] newScreen];

非常简单...

于 2012-01-12T15:35:24.787 回答
0

我将创建 RootViewController 作为我的起始位置。当 rootViewController 加载时,我将初始化并添加我的第一个数据输入过程。这样,当我点击提交时,我会调用 popToRootViewController,当 rootViewContoller 加载时,它会初始化并再次加载第一个数据输入过程。

于 2012-01-11T22:15:13.150 回答