簡體   English   中英

通過Url Scheme重新打開iOS應用程序 - 狀態保存

[英]Re-opening iOS app through Url Scheme - State Preservation

我將用戶從我的應用程序發送到瀏覽器,然后通過我的自定義URL將其返回到應用程序。 問題是:一旦我返回,我的所有實例變量都是空的! 接口被保留(正如我使用Storyboard時預期的那樣),但是(文本字段,實例變量等)的值是不可訪問的...它們返回null。

這是怎么回事??

(自從我遇到這個問題已經有一段時間了,但這就是我認為發生的事情......)

在我的app delegate的openURL方法中處理返回URL的調用時,我嘗試在響應中調用我的視圖控制器的方法,並通過創建該方法的視圖控制器的實例來實現。 由於我沒有訪問當前實例,因此我基本上創建了該視圖控制器的空白第二個實例。

在這種情況下,我最終使用NSNotification而不是直接調用該方法。 我絕對認為這是最優雅的解決方案。

但回想起來我也可以做的是訪問視圖控制器的當前實例,它也恰好是根視圖控制器,使用:

UIViewController *controller = self.window.rootViewController;

來自app委托中的調用的響應最好不要求任何特定的視圖控制器,以下之一應優先用於修改數據 -

1.Blocks

2.NSUserDefaults或CoreData數據庫

3.Notifications

4.Shared Singleton實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM