【问题标题】:Swift: Show different views based on conditionSwift:根据条件显示不同的视图
【发布时间】:2020-08-03 14:13:59
【问题描述】:

我正在构建一个为用户显示不断变化的任务的应用程序(计划是每天显示一个任务,目前它只是在加载时显示一个随机任务)。

流程:用户登录应用程序并被定向到显示日常任务的主屏幕。 完成任务后,他单击“标记已完成”按钮,然后以模态方式显示成功屏幕。 当用户关闭成功界面时,他会返回到主界面,当前仍显示每日任务。

我想更改主屏幕上的视图,这样当从成功屏幕返回时,用户将看到不同的视图,而不是显示之前显示的任务(即一条消息说“你完成日常任务”)。

新任务只应在第二天(或任何其他条件)显示。

逻辑是:

如果 dailyActivityCompleted = false > 显示每日活动视图

如果 dailyActivityCompleted = true > 显示“已完成”视图

有条件地确定在同一个 UIViewController 中显示哪些内容的最佳方法是什么?

我是 Swift 新手,如果这是一个基本问题,我很抱歉,我搜索了但找不到解决方法...

谢谢!

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    有条件地确定在同一个 UIViewController 中显示哪些内容的最佳方法是什么?

    最好的方法是维护一个管理应用程序状态的数据模型,包括任务列表、当前任务、完成状态等。一旦你有了这些,视图控制器的工作就是确保它的视图反映模型,或者至少是它显示的模型的一部分。每当发生可能改变模型状态的事情时,您都可以让视图控制器检查模型并自行更新。例如,如果你使用 segue 来显示成功视图控制器,你可以实现 unwindFromSegue(segue:) 来调用一些检查模型和更新视图的方法。

    【讨论】:

    • 谢谢!我将对此进行一些研究:) 我假设我不必将所有数据实际存储在数据模型中? (我正在使用 Firebase 并希望从那里获取数据)
    • 如果我说“你的车应该有引擎”,而你说“我希望使用丰田产品”,那会有一些重叠,对吧? Firebase 是一个用于构建移动应用程序的平台,包括数据存储以及分析和测试等其他内容。您应该阅读“模型-视图-控制器”或“MVC”模式(尤其是 iOS 使用它的方式)。你的应用应该有一个模型;如果您想使用 Firebase 品牌的部件构建该模型,那很好。
    猜你喜欢
    • 2023-03-08
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多