gpt4 book ai didi

ios - 使用 iOS 7 向后边缘滑动时在哪里实现自动保存代码?

转载 作者:行者123 更新时间:2023-11-29 12:17:35 25 4
gpt4 key购买 nike

iOS 7 引入了边缘滑动以在导航 Controller 中向后导航(只要你 don't override the leftBarButtonItem 等等)。

假设我正在实现一个类似于 Apple Notes 的应用程序。在 Apple 的应用程序中,一旦用户点击笔记,左上角会有一个返回按钮,右上角有一个完成按钮。这个 View Controller 在用户离开后自动保存。即使用户在编辑笔记的同时向后滑动,它也会自动保存。

实现这一点的一种方法是在每次击键时写入磁盘。但是,我正在寻找更有效的实现。

我应该覆盖哪个方法来执行自动保存?

需要说明的是,在这三种情况下应该调用自动保存代码:

  • 用户点击返回按钮
  • 用户向后滑动
  • 用户点击“完成”按钮

最佳答案

到目前为止,我一直在 viewWillDisappear 中实现保存逻辑,这最大限度地减少了写入量,并且在用户终止应用程序时也会注意保存。

此外,完成按钮无需在完成按钮中实现保存逻辑,只需调用:

[self.navigationController popViewControllerAnimated:YES];

...(例如通过委托(delegate)或展开转场)它也会自动保存。所有三个代码路径都将通过 viewWillDisappear。

虽然技术上可以在 viewDidDisappear 中实现,但是如果之前的 View Controller 需要显示更新后的数据,这个方法就来不及了。


对于更复杂的 View Controller (例如,一旦 View Controller 被关闭,那些具有破坏性行为的 View Controller ),还有其他几件事情需要考虑:

  1. 如果模态显示在当前 View Controller 之上,是否应该调用保存? (例如,在 Apple Notes 中,假设共享按钮启动了一个模式;当您点击此按钮时它应该保存吗?)。如果此时重要不保存,可以读取presentedViewController的值.如果它有值,则表示 viewWillDisappear被调用是因为在其上方显示了模态。
  2. 如果将 View Controller 推送到当前导航堆栈,是否应该调用保存? (例如,同样,在 Apple Notes 中,如果共享按钮使用推送而不是模式,它应该保存吗?)You can check isMovingFromParentViewController 的值在这种情况下。
  3. 如果用户点击主页按钮退出您的应用,是否应该保存?
  4. 如果用户开始向后滑动然后取消滑动以停留在当前屏幕上,是否应该保存?
  5. 想象一下 View Controller 处于模态,当模态被关闭时是否应该发生破坏性操作?检查isBeingDismissed在这种情况下。
  6. 同上,但假设 View Controller 是导航 Controller 中呈现的第二个页面。

关于ios - 使用 iOS 7 向后边缘滑动时在哪里实现自动保存代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com