我将用户从我的应用程序发送到浏览器,然后通过我的自定义 URL 将他们返回到应用程序。问题是:一旦我返回,我所有的实例变量都是空的!接口被保留(正如我使用 Storyboard 以来所期望的那样),但值(文本字段、实例变量等)是不可访问的……它们返回 null。
这是怎么回事??
我将用户从我的应用程序发送到浏览器,然后通过我的自定义 URL 将他们返回到应用程序。问题是:一旦我返回,我所有的实例变量都是空的!接口被保留(正如我使用 Storyboard 以来所期望的那样),但值(文本字段、实例变量等)是不可访问的……它们返回 null。
这是怎么回事??
(自从我遇到这个问题以来已经有一段时间了,但这是我认为发生的事情......)
在我的应用程序委托的 openURL 方法中处理返回 URL 的调用时,我尝试调用我的视图控制器的方法作为响应,并通过创建该方法的视图控制器的实例来实现。由于我没有访问当前实例,因此我基本上创建了该视图控制器的第二个空白实例。
在这种情况下,我最终使用 anNSNotification
而不是直接调用该方法。我绝对认为这是最优雅的解决方案。
但回想起来,我也可以做的是访问视图控制器的当前实例,该实例也恰好是根视图控制器,使用:
UIViewController *controller = self.window.rootViewController;
应用程序委托中调用的响应最好不要调用任何特定的视图控制器,最好使用以下之一来修改数据-
1.积木
2.NSUserDefaults 或 CoreData 数据库
3.通知
4.Shared Singleton 实例