我的应用要求用户在首次使用时进行注册。注册流程具有用户需要完成的三个屏幕。
用户完成注册流程后,他进入应用程序的主UI。
用情节提要处理流量变化的最佳方法是什么?
我最好的猜测是使用两个情节提要板,一个主情节提要板和一个注册情节提要板,然后在运行时检查是否需要注册流程并加载该注册情节提要板,否则加载主情节提要板。
这是处理两个流程的最好或最常用的方法吗?如果是,在注册流程完成后如何切换到主故事板?
您可以将所有内容放在一个情节提要中,它将很好地工作。您可以选择要在应用启动期间实例化的视图控制器。
首先,您需要转到目标的设置,并从显示“主界面”的情节提要中删除情节提要。然后,您将需要application:didFinishLaunchingWithOptions:
在您的应用程序委托中的方法中包含以下代码:
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *viewController = nil;
BOOL needsSignUp = //Your check for whether you need to sign in or not here
if (needsSignUp) {
viewController = [storyboard instantiateViewControllerWithIdentifier:@"SignUpScreen"];
}
else {
viewController = [storyboard instantiateViewControllerWithIdentifier:@"MainAppScreen"];
}
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
这只是决定在手动实例化情节提要后从情节提要中手动实例化哪个视图控制器。您需要用情节提要中的View Controller的实际标识符替换@"SignUpScreen"
和@"MainAppScreen"
。
确保执行第一步,从目标的“主界面”中删除情节提要,因为这就是使情节提要自动实例化情节提要并自动选择初始视图控制器的过程,您不再希望这样做。
编辑:
每个视图控制器都有对其实例化的情节提要的引用,因此当您完成注册并想要显示主应用程序屏幕时,只需调用以下行即可获取它:
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"MainAppScreen"];
如果您使用aUINavigationController
来显示注册屏幕,则可以通过执行以下操作来替换视图控制器堆栈:
[self.navigationController setViewControllers:@[viewController] animated:YES];
如果要将主屏幕视图控制器设置为根视图控制器,或将任何其他视图设置为根视图控制器,则可以执行以下操作:
self.view.window.rootViewController = viewController;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句