我希望我的viewController名为“DoctorInformationController”,只有当用户第一次启动应用程序时才会出现。我已经看到了一些人的答案,但是我想知道如何在swift中做到这一点!
谢谢
答案 0 :(得分:2)
我使用的代码将基于应用程序的第一次或第二次启动启动viewcontoller。
这在AppDelegate中。
var defaults: NSUserDefaults
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let firstLaunch = defaults.boolForKey("FirstLaunch")
if firstLaunch {
print("Not first launch.")
} else {
}
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateViewControllerWithIdentifier("navController") as! UINavigationController
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
else {
print("First launch, setting NSUserDefault.")
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateViewControllerWithIdentifier("firstrunVCstoryboard") as UIViewController
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
return true
}
您需要调整它以适合您的故事板和视图控制器名称。
修改强>
这是我如何设置第一个视图控制器中的值以指示第一次运行已完成。所以它不会再显示出来。
self.defaults.setBool(true, forKey: "FirstLaunch")
答案 1 :(得分:0)
无法判断它是否是UIKit框架中内置的第一次启动,但是你可以采用另一种方式。
在AppDelegate.swift中,转到applicationDidFinishLaunchingWithOptions方法(通常是第一个)。现在,添加:
//Check for key "first_launch" in User Defaults
if let _ = NSUserDefaults.standardUserDefaults().objectForKey("first_launch") {
//Set your own global variable to be true. Then, when your ViewController
//loads, do a popup window with that DoctorViewController thingy if the
//variable is true
//Example:
isFirstLaunch = true
//Then, set "first_launch" to be a value so your app will never call this block again
NSUserDefaults.standardUserDefaults().setObject("", forKey: "first_launch")
}
答案 2 :(得分:0)
只需向
发送获取请求即可http://ip-api.com/json
它将响应完整的设备地理位置数据,包括IP地址。
{
"status": "success",
"country": "COUNTRY",
"countryCode": "COUNTRY CODE",
"region": "REGION CODE",
"regionName": "REGION NAME",
"city": "CITY",
"zip": "ZIP CODE",
"lat": LATITUDE,
"lon": LONGITUDE,
"timezone": "TIME ZONE",
"isp": "ISP NAME",
"org": "ORGANIZATION NAME",
"as": "AS NUMBER / NAME",
"query": "IP ADDRESS USED FOR QUERY"
}