我正在开发学校应用程序和管理面板。在第一次打开应用程序时,它将显示我公司的启动画面,在我的应用程序中,我将为父母提供登录凭据。登录到应用程序后,它会将该用户注册到特定的学校。下次当用户打开应用程序时,它应该显示特定的学校启动画面在管理面板中添加了什么学校。
如果可能的话?如何实现?
提前致谢。
答案 0 :(得分:4)
是的,您应该使用自定义初始屏幕视图控制器。 请参阅以下链接并按照步骤操作。
https://nullpointr.wordpress.com/2012/02/19/iphone-dev-how-to-implement-a-splash-screen/
或
UIImageView*imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"your_default_image_or_another.png"]];
[[firstViewController view] addSubview:imageView];
[[firstViewController view] bringSubviewToFront:imageView];
// as usual
[self.window makeKeyAndVisible];
//now fade out splash image
[UIView transitionWithView:self.window duration:1.0f options:UIViewAnimationOptionTransitionNone animations:^(void){imageView.alpha=0.0f;} completion:^(BOOL finished){[imageView removeFromSuperview];}];
在此,您可以使用自己的图像或从不同学校的Web服务下载图像,并在imageview中设置。
答案 1 :(得分:3)
在第一次打开应用程序时,它必须显示我的公司飞溅 屏幕,在我的应用程序中,我获得了父母的登录凭据。后 登录到应用程序,它必须将该用户注册到特定的学校。
一个简单的方法是在你的AppDelegate中设置一个BOOL,以测试它是否是你应用的第一次启动。
在AppDelegate.m
中,您可以通过在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Check if app has loaded before
[self checkUserDefaults];
// Another method to determine what the first screen the user sees is
[self setInitialViewController];
return YES;
}
...再往下,你可以做something like this
// make a section for UserDefaults
#pragma mark - User Defaults
- (void)checkUserDefaults {
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasLaunchedOnce"])
{
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"hasLaunchedOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
下次用户打开应用时,必须显示特定的学校启动画面 在管理面板中添加了什么学校。如果可能的话?怎么样?
您还可以在AppDelegate
中根据NSUserDefaults
创建一个确定下一步的方法:
- (void)setInitialViewController {
UIStoryboard *storyboard = self.window.rootViewController.storyboard;
// Check if there's a key created or if the key exists
if ([[[NSUserDefaults standardUserDefaults]valueForKey:@"hasLaunchedOnce"]boolValue] == NO || ![[NSUserDefaults standardUserDefaults] boolForKey:@"hasLaunchedOnce"]) {
// set to instantiate first launch VC
UIViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"initialVC"];
self.window.rootViewController = rootViewController;
} else {
UIViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"schoolSelectedVC"];
self.window.rootViewController = rootViewController;
}
[self.window makeKeyAndVisible];
}
在初始场景的某个位置上,您想要更新NSUserDefaults
以反映已为其选择的学校进行了配置。
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasLaunchedOnce"];
答案 2 :(得分:0)
使用您自己的启动画面视图控制器。
使用userdeafult来保存它的状态 - 如果你想让它只工作一次,或者只在应用程序不在内存中时 -
使用委托方法或通知中心 - 任何具有回调功能的东西 - 或常规方法并检查您需要的条件,并且每个条件根据需要通过显示/隐藏,UIAnimation或甚至刷新整个UI来更改UI
希望这可以帮到你。