iOS如何设置一个只会在第一次打开app出现的视图(如登录页面)
2017-05-13 11:51
811 查看
也许有人在项目中会用到希望第一次打开APP时显示的引导或登录之类的然后以后打开不会出现的页面,本文提供一种方法能解决第一次打开显示页面然后以后进入该页面(比如登录)能直接pop回点击登录的地方的方法。
可以直接拷贝至Xcode使用启动时在appdelegate中添加判断然后设置根控制器。代码如下。
//判断是否是第一次启动 //好像如果读取bool值没有该key的时候默认为NO,没有nil的情况了 if([[NSUserDefaults standardUserDefaults] boolForKey:@"hasUsed"] == NO) { NSLog(@"第一次启动"); self.window.rootViewController = [[<#你的登录页面#> alloc] init]; }else if([[NSUserDefaults standardUserDefaults] boolForKey:@"hasUsed"] == YES){ NSLog(@"非第一次启动"); self.window.rootViewController = [[<#你的根控制器#> alloc] init]; }
然后在登录页面的controller里面写一个quitController函数,判断当前是否第一次进入软件,如下。如果你有以后注册这个选项的时候可以直接调用下面的方法。以后进入登录页面的时候用Push不用present,如果用present请将下面的pop改为dismiss。
if([[NSUserDefaults standardUserDefaults] boolForKey:@"hasUsed"] == NO) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasUsed"]; [UIApplication sharedApplication].keyWindow.rootViewController = [[<#你的根控制器#> alloc] init]; } else if([[NSUserDefaults standardUserDefaults] boolForKey:@"hasUsed"] == YES){ [self.navigationController popViewControllerAnimated:YES]; if (self.navigationController.navigationBar.isHidden) { [self.navigationController setNavigationBarHidden:NO animated:YES]; } }
如果大家有别的办法,也请补充或者贴链接,谢谢支持
相关文章推荐
- 安卓app中嵌入一个H5页面,当手机系统设置字体变大时,如何使H5页面的字体不会随用户自己调整的系统字体变化而变化?
- 如何在App中打开设置、appstore或其他App(区别iOS 10及之前系统)
- (他山之石)MFC学习之路(二)如何在多文档视图中,程序一开始运行,只出现主框架,不打开一个文档?
- objective-c开发iosapp如何实现一个页面通知另一个页面调用某函数?
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- 火狐浏览器 如何设置成 打开一个新的页面,原有的页面继续存在
- Android如何在app中通过一个按钮直接跳转到的系统的权限设置页面
- Phone 7的全景视图(PanoramaItem),如何设置一个Item能够跨越多个Item页面
- objective-c开发iosapp如何实现一个页面通知另一个页面调用某函数?
- JavaScript调用App原生代码(iOS、Android)通用解决方案 实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功
- iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- MyEclipse2014中如何设置jsp文件打开后显示一个框里两个页面,上面是图,下面是代码
- iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)
- iOS简单引导页面的实现,只在用户第一次登录时出现,以后不出现
- Android如何在app中通过一个按钮直接跳转到的系统的权限设置页面
- 如何解决Citrix Web Interface 5.x 第一次打开页面慢的问题
- SharePoint:如何设置某个页面必须由站点集管理员打开
- sourceinsight 打开工程出现“内存不能被written”的错误以如何更改sourceinsight默认工程设置
- 一个CSS文件内如何设置多个body及多个DIV样式,并给出页面如何调用