[英]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.