ios - 通过 Url Scheme 重新打开 iOS 应用程序 - 状态保存

标签 ios objective-c

我将用户从我的应用程序发送到浏览器,然后通过我的自定义 URL 将他们返回到应用程序。问题是:一旦我返回,我所有的实例变量都是空的!接口(interface)被保留了(正如我预期的那样,因为我使用了 Storyboard ),但是(文本字段、实例变量等的)值是不可访问的...它们返回 null。

这是怎么回事??

最佳答案

(我已经有一段时间没有遇到这个问题了,但这是我认为发生的事情......)

在我的应用委托(delegate)的 openURL 方法中处理返回 URL 的调用时,我试图调用我的 View Controller 的方法作为响应,并通过创建该方法的 View Controller 的实例来实现。由于我没有访问当前实例,我实际上创建了该 View Controller 的第二个空白实例。

在这种情况下,我最终使用了 NSNotification 而不是直接调用该方法。我绝对认为这是最优雅的解决方案。

但回想起来我也可以做的是访问 View Controller 的当前实例,它也恰好是 Root View Controller ,使用:

UIViewController *controller = self.window.rootViewController;

关于ios - 通过 Url Scheme 重新打开 iOS 应用程序 - 状态保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15973451/

相关文章:

javascript - Android 浏览器和 iOS Chrome 是否支持全屏 API?

ios - 为什么来自 cocoa touch 类的新文件会产生一个接口(interface)?

ios - 如何避免在 iOS 中对 CATransform3D 旋转进行倾斜/翻转?

objective-c - 如何在 OSX 上的 NPAPI 浏览器插件中安全地打开对话框?

iphone - 从我的图库添加照片时出错?

ios - Firebase 查询未触发以调用它们

javascript - 在 iOS Safari 中禁用链接上的默认拖动行为

objective-c - 比较 isEqual 中的 nil 属性

ios - 将 NSArray 放入 TableView

objective-c - bash 脚本和使用 OpenSSL 的 cocoa 代码之间的区别