我目前正在开发订阅应用。 我目前有6个视图控制器,它们有不同的选项。 例如 - 名称 - 金额 - 日期等。
一旦用户完成这些操作,我希望它创建一个包含此信息的新视图控制器。 因此,一旦他们返回到主屏幕,他们就可以向左滑动,它将显示他们的订阅。
我想知道的是,有一种方法可以在按下日期页面上的完整按钮后创建一个新的视图控制器及其信息吗? 将数据传输到视图控制器很容易。我更想知道如何在他们尝试添加另一个订阅时创建一个新的视图控制器,如果这是有意义的。
如果没有,我可以这样做吗?
答案 0 :(得分:0)
我可以想到两种选择。我相信还有更多,但这些可能有所帮助。
prepareForSegue
将用户生成的数据传递给每个VC。这有点多余,所以我建议你做第一种方法。为了记录,这个segue方法看起来像这样:VC 1被解雇:将名称传递给VC2
VC 2被驳回:将名称和金额传递给VC3
VC 3被驳回:将名称,金额和日期传递给VC4等......
获得所有信息后,您可以显示最后一个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);
如果您有任何其他问题,请与我们联系。