ios 忽略 viewWillDisappear

标签 ios uiview

我在选项卡 View 中有一个表单;我将任何字段的表单标记为已更改,如果表单是脏的(代替“保存”按钮),我想弹出一个带有“保存”/“取消”的 ActionSheet。在用户响应正在处理的 ActionSheet 之前,有什么方法可以阻止 View 消失(或从 View 堆栈中删除)?

最佳答案

几个想法:

  1. 值得注意的是,Apple 的 Human Interface Guidelines (HIG)明确反对这种做法。他们建议应用程序应该“只在必要时要求人们保存”,因为人们“应该相信他们的作品总是被保存,除非他们明确取消或删除它。”也许在您的情况下,拥有此功能很重要,但通常不鼓励这样做。

  2. 另一种方法是,如果您想让用户有机会恢复到旧设置,那就是提供一个“撤消”按钮,这样,您就尊重 HIG 并有效地自动保存,但您也给了用户在确实需要时明确恢复到先前的值。

  3. 正如其他人指出的那样,在 viewWillDisappear 上提示保存或丢弃的概念不太行得通。这在逻辑上为时已晚。 viewWillDisappear 可能因太多原因而被调用,其中许多原因不在您的控制之下,无法及时返回到该方法、引入新的用户界面元素等并不是一件容易的事。

  4. 如果您真的非常需要“保存”与“取消”用户界面,那么这更适合模态界面(或推送一个您必须弹出才能返回的新 View Controller )你的标签栏 View Controller )带有保存和取消按钮而不是标签栏界面。例如。您的标签栏 View 可以显示当前值,您点击“编辑”按钮,它会推送带有保存和取消按钮的新 View 。我们对您的应用了解不多,无法就您的情况提出这是否合乎逻辑的建议。 (另一种方法,请参阅 enabling edit mode in view controller。)

关于ios 忽略 viewWillDisappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10771833/

相关文章:

ios - Swift 代码签名错误

iphone - 如何在ios中连续调用Web服务

ios - 为什么按钮只在第二次尝试时出现?

iphone - iOS - UIScrollView 不更新其内容,一些 UIViews 在重新加载后消失

ios - 带有圆角和边框的 UIView 边缘颜色错误

ios - 取消其他 View 的触摸事件

ios - 如何检索存储在 PFUser.currentUser() 下的 PFObjects 自定义子类的数组

iOS 7 master 有导航栏提示时的细节布局

ios - 带有 uitextview 的可拖动 uiview

ios - 如何制作带有可选圆角和边框的 UIView?