有人会认为我可以很容易地找到这个问题的答案,也许我错过了,但是这里有。
我的应用程序包含一些视图,其中主视图显示从用户,麦克风和相机通过其他视图逐步收集的一堆信息。一切都应该以一个大的高潮“提交按钮”结束。此时数据安全存储(当前在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;
}
答案 0 :(得分:0)
我会创建RootViewController作为我的起始位置。当rootViewController加载时,我会初始化并添加我的第一个数据输入过程。这样,当我点击提交时,我会调用popToRootViewController,当rootViewContoller加载时,它会初始化并再次加载第一个数据输入过程。
答案 1 :(得分:0)
所以经过一段时间的挖掘和反复试验。我发现了一些按照我想要的方式工作的东西。
我在app delegate中创建了一个特殊函数,它执行以下操作:
- (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];
很容易就像...