gpt4 book ai didi

ios - 是否可以延迟或取消 View 消失?

转载 作者:行者123 更新时间:2023-11-29 12:06:08 24 4
gpt4 key购买 nike

我正在利用 viewWillDisappear(animated: Bool) 将数据推送到我的服务器,作为 auto-save 类型的功能。但是,有时会出现用户输入的数据不完整或无效的事件,因此我不想将其推送到服务器。在此事件中,我展示了一个显示通知的 UIAlertController

目前,通知只允许用户关闭它,但如果用户愿意,可以选择留在页面上并更正它,这将以指数方式更加有益。

基本上,我想防止 View 发生变化,直到用户在呈现的 UIAlertController 上做出选择之后。如果这不可能,那么我至少会让用户回到之前的 View ,前提是他们选择了那个选项。

目前我的应用程序使用 SWRevealViewController 提供的自定义 Segue库,名为 reveal view controller, push controller,它允许我在导航到的 View 上使用抽屉导航。如果不这样做,应用程序将崩溃。

不幸的是,在 UIAlertAction 的回调中使用 self.navigationController?.popViewControllerAnimated(true) 不会产生任何结果。

编辑:对于将来阅读本文的任何人,我有一个变通解决方案,这可能是也可能不是处理此问题的正确方法。不是将按钮链接到 segue 以进行导航,而是创建一个手动 segue 合并每个 View 。 (您可以通过右键单击并从一个 View 拖动到另一个 View 来执行此操作),完成此操作后,请使用您的按钮并为其创建一个@IBAction,这个@IBAction 应该显示 UIAlertController 并且在 UIAlertAction 内部你应该在你想移动到下一个 View 时使用 performSegueWithIdentifier 手动调用你的 segue。如果您想留在 View 上,只需不调用它即可。

再次重申,这可能是也可能不是处理此问题的正确方法,但除非有人告诉我另一种更合适的方法,否则我将采用这种方法处理它。

最佳答案

其实你编辑的方法是正确的。我们最常做的是有一个按钮或任何其他将开始发送、评估数据并同时向 View 添加一些事件指示器的操作,以便用户知道他需要等待任务完成。

完成后视情况而定。我们要么在成功时导航到新屏幕,要么给用户一些提示 View ,指示操作已完成,或者在某些情况下甚至显示一些文本或图像,指示操作已完成,显示一秒钟左右,然后导航到其他屏幕。如果发生错误,我们会显示一些指示并自然地停留在屏幕上。

您的问题似乎是从滥用 Storyboard功能开始的。您应该知道这种类型的开发可能会给您带来很多麻烦。我建议你不惜一切代价避免 segues。如果您随后在代码中调用它们,甚至是特别的。只需调用 navigationController.poppushpresentdismisssetViewControllers.. . 但即使您继续使用它们,请记住这只是您的一些捷径,您仍然应该了解如何在代码中执行所有这些操作。

关于ios - 是否可以延迟或取消 View 消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34948091/

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