![](/img/trans.png)
[英]iOS - How do I pass arguments from didFinishLaunchingWithOptions to a viewController?
[英]Do I initialize the viewController when I receive UIApplicationLaunchOptionsLocationKey in app didFinishLaunchingWithOptions?
我正在創建一個應用程序來監聽重要的位置更改事件,如果應用程序被終止,那么iOS將使用UIApplicationLaunchOptionsLocationKey設置啟動應用程序。
因此,文檔說要創建一個新的位置管理器並再次注冊位置更新。 但是,沒有提到我是否應該初始化我的viewController(就像我在正常的應用程序啟動時一樣)? 我的視圖控制器在viewDidLoad中初始化,但是在appDidFinishLaunchingWithOptions中創建。
知道操作系統為應用程序提供多長時間進行位置更新處理? 如果位置更改指示應用程序感興趣的位置,我的應用程序需要發出Web服務請求。
謝謝
您應該考慮將初始化代碼移動到新方法,例如initializeViews
。 此方法將檢查以確保視圖尚未初始化,然后初始化它們。 您可以從application:didFinishLaunchingWithOptions:
和applicationWillEnterForeground:
調用此方法,但applicationWillEnterForeground:
的調用application:didFinishLaunchingWithOptions:
僅在應用程序未進入后台時才會發生。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
if([UIApplication sharedApplication].applicationState != UIApplicationStateBackground)
[self initializeViews];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[self initializeViews];
}
- (void)initializeViews {
if(!viewsAreInitialized) {
...
viewsAreInitialized = YES;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.