首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios忽略viewWillDisappear

ios忽略viewWillDisappear
EN

Stack Overflow用户
提问于 2012-05-27 13:16:56
回答 2查看 1.8K关注 0票数 0

我在一个选项卡式视图上有一个表单;我将表单标记为脏的任何字段都已更改,如果表单是脏的,我想弹出一个带有“保存”/“取消”的ActionSheet (代替“保存”按钮)。有没有办法阻止视图消失(或从视图堆栈中移除),直到用户响应正在处理的ActionSheet?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-27 22:49:20

我有几个想法:

  • :值得一提的是,苹果的Human Interface Guidelines明确反对这种做法。他们建议应用程序应该“要求人们只在必要的时候保存”,因为人们“应该相信他们的工作总是被保存下来,除非他们明确地取消或删除它。”也许在你的情况下,拥有这个功能很重要,但它通常是discouraged.

  • An的替代方案,如果你想让用户有机会恢复到旧的设置,就是提供一个“撤销”按钮,这样,你就可以使用HIG并有效地自动保存,但你也允许用户显式地恢复到以前的值,如果他们真的需要的话。

  • 正如其他人所指出的,在viewWillDisappear上提示保存或放弃的概念并不是很有效。在这个过程中,逻辑上已经太晚了。viewWillDisappear可能会因为太多的原因而被调用,其中很多都不在您的控制之下,如果不能及时返回到该方法、引入新的用户界面元素等等,这是不明智的。

  • 如果您真的非常需要“保存”与“取消”用户界面,那么这更像是一个模式界面(或者按下一个新的视图控制器,您必须将其弹出才能返回到选项卡栏视图控制器),它具有保存和取消按钮,而不是选项卡栏界面。例如,您的选项卡栏视图可能会显示当前值,您可以轻触一个“编辑”按钮,该按钮将按下带有保存和取消按钮的新视图。我们对你的应用了解不够多,不知道这在你的情况下是否合乎逻辑。(有关另一种方法,请参阅enabling edit mode in view controller.)
票数 3
EN

Stack Overflow用户

发布于 2012-05-27 13:23:15

一旦应用程序进展到调用viewWillDisappear:的程度,就无法阻止视图消失。要做的事情是创建一个函数,如下所示:

代码语言:javascript
复制
- (void)saveAndClose {
    //Display sheet asking user what they want to do
}


- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
{
    if (buttonIndex == 0) // 0 or whatever the index of your save button is
    {
        // Perform save functions
    }

    [self dismissModalViewControllerAnimated:YES]; // or pop the view controller if appropriate
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10771833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档