除非当前场景中存在所有数据,否则如何防止转到另一个 Storyboard 场景?

Posted

技术标签:

【中文标题】除非当前场景中存在所有数据,否则如何防止转到另一个 Storyboard 场景?【英文标题】:How to prevent going to another Storyboard scene unless all data is present in current scene? 【发布时间】:2013-09-02 16:13:45 【问题描述】:

我有一个 iPad 应用程序(XCode 4.6、ios 6.2、ARC 和带有 UITabController 的 Storyboards)。 setup 场景是缺少所需数据时显示的第一个场景;我不希望用户能够离开该场景,除非所有必填字段都包含有效数据。

我能想到的唯一地方是在 -viewWillDisappear 中验证数据的存在;然而,此时不改变用户点击的场景为时已晚。用户可以点击另一个选项卡,从而绕过所有现有的验证。

如果缺少所需的数据,有人对如何防止进入另一个场景有任何想法吗?

【问题讨论】:

【参考方案1】:

在输入所有数据之前,您能否禁用进入下一个场景的按钮? 有一个检查功能,以确保每次编辑字段或编辑结束时检查所有字段中的数据。那么如果设置的所有字段都有有效数据

    [nextSceneButton setEnabled:YES]; // To toggle enabled / disabled

或者你可以做的另一种方法是将按钮绑定到一个函数,该函数使用 if 语句来检查是否所有数据都存在,如果所有数据都存在则允许 segue,但如果不是那么弹出错误消息或突出显示尚未包含有效文本的文本字段。

【讨论】:

当用户正常操作(即填写数据)时,我已经检查了有效数据......问题是当用户没有输入任何内容,而只是点击另一个 tabBar 按钮。我需要一种方法来捕获该点击并验证数据是否存在。 我找到了这个link,实现了它,它可以按我的意愿工作。感谢您的帮助... 在验证数据之前可能禁用 tabBar 按钮? // 禁用 UITabBarController.tabbar.userInteractionEnabled = NO; // 启用 UITabBarController.tabbar.userInteractionEnabled = YES;

以上是关于除非当前场景中存在所有数据,否则如何防止转到另一个 Storyboard 场景?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止应用程序被卸载?

网站被黑 搜索快照被劫持跳转到另一网站

iOS应用内跳转到系统设置页面

unity里视频播放完如何自动跳转到另一个场景?

HTML做的网页 如何使当前页面跳转到另一页面锚点处,在线等!!

jQuery Mobile 在页面转换之前防止滚动到顶部?