【问题标题】:Subscription app订阅应用
【发布时间】:2017-06-27 07:56:09
【问题描述】:

我目前正在开发订阅应用程序。 我目前有 6 个视图控制器,它们有不同的选项。 例如 - 名称 - 金额 - 日期等。

一旦用户完成了这些,我希望它创建一个带有这些信息的新视图控制器。 因此,一旦他们返回主屏幕,他们将能够向左滑动,它会显示他们的订阅。

我只想知道,有没有一种方法可以在他们按下“日期”页面上的完整按钮后创建一个包含他们信息的新视图控制器? 将数据传输到视图控制器是很容易的部分。我更想知道当他们尝试添加另一个订阅时我如何创建一个新的视图控制器,如果这有意义的话。

如果没有,我有办法做到这一点吗?

【问题讨论】:

  • 您在“创建新的视图控制器”或“将用户数据传递给视图控制器”时遇到问题?
  • 更多的是创建一个新的视图控制器。我基本上想要这样,当他们将数据放入将转到视图控制器的名称 - 金额 - 日期中时。但如果他们再做一次,我希望它创建另一个视图控制器。如果这有意义
  • 请参考Link你可以实现
  • “当他们尝试添加另一个订阅时,我如何创建一个新的视图控制器,如果这有意义的话”不要这样做。如果用户有 100 个订阅,100 个视图控制器不会太高效。相反,只使用一个 viewController,并在每次使用时将信息从主屏幕传递给该 VC
  • 我知道我不应该拥有所有这些控制器,我只是想在没有大量 VC 的情况下找到最好的方法

标签: ios swift xcode swift3 subscription


【解决方案1】:

你有两个我能想到的选择。我相信还有更多,但这些可能会有所帮助。

  1. 您可以创建一个结构的全局实例,它是您的“要添加的订阅”。然后,您可以在关闭每个 VC 后更新此结构的每个属性的值(例如名称、金额、日期等)
  2. 您可以通过prepareForSegue 将您的用户生成的数据传递给每个VC。这有点多余,所以我建议使用第一种方法。作为记录,这个 segue 方法看起来像这样:

VC 1 Dismissed:将名称传递给 VC2

VC 2 Dismissed:将名称和金额传递给 VC3

VC 3 Dismissed: Pass Name, Amount, and Date to VC4 etc......

获得所有信息后,您可以显示最后一个 VC,只需将标签等设置为结构的值或通过 segue 传递的值。

编辑:关于选项 1 的更多信息

所以如果你做了一个这样的结构:

struct UserToAdd {
    static var name: String = String()
    static var amount: Int = 0
    static var date: Date = Date()
}

使用您希望订阅具有的所有属性,然后您可以在通过每个 VC 时将此信息存储在此结构中。

例如,如果您的第一个 VC 获得了订阅名称,那么当您的“prepareForSegue”函数被调用时,当您即将移动到第二个 VC 时,您可以执行以下操作:

UserToAdd.name = "My Subscription Name"

当然,您分配给此名称的字符串将取决于用户输入的数据等,但我希望它能够说明我的观点。对于每个初始 VC,这将是一个类似的过程,但是一旦您拥有了所需的所有数据,您就可以在最后一个 VC 加载时调用此数据,并将其设置为标签的文本或类似的内容:

var nameLabel = UILabel()
nameLabel.text = UserToAdd.name
self.view.addSubview(nameLabel);

如果您还有其他问题,请告诉我。

【讨论】:

  • 感谢您的回答,如果您不介意,能否给我更多关于选项 1 的详细信息?
  • 好的,谢谢,我会提前给你的,我会告诉你的 :)
  • 你可以把结构放在任何你想要的地方,它只是不能放在一个类中,这样你就可以在每个 VC 中访问它。
  • 好的,我已经这样做了,现在我的 mainVC 上有了这个名字。如何输入多个名称,以便当用户在 MainVC 上向左滑动时,他们将看到他们的订阅。例如,他们在 NameVC 上输入 Netflix,然后一旦转到 MainVC,他们向左滑动并查看他们的 Netflix 订阅。以及他们进行的其他订阅?如果这有意义
  • 好吧,您最终将拥有您拥有的订阅数组。当您添加新订阅时,它会附加到该列表中。当您希望用户查看他们的所有订阅时,您只需遍历数组并获取信息。
猜你喜欢
  • 2018-02-28
  • 2011-12-24
  • 2013-12-23
  • 2011-07-16
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
相关资源
最近更新 更多