2017-02-09 129 views
-1

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

一旦用户完成这些,我希望它创建一个新的视图控制器与此信息。 所以一旦他们回到主屏幕上,他们将能够向左滑动并显示其订阅。

我想知道的是,有没有一种方法可以创建一个新的视图控制器及其信息,一旦他们按下日期页面上的完整按钮?将数据传输到视图控制器是很简单的部分。我更想知道如何创建一个新的视图控制器,当他们尝试并添加另一个订阅,如果这是有道理的。

如果没有,我可以做到这一点吗?

+0

您遇到了“创建新视图控制器”或“将用户数据传递给视图控制器”的问题? –

+0

它更创造一个新的视图控制器。我基本上就是这么想的,当他们把数据放在Name - Amount - 将会去视图控制器的日期。但如果他们再次这样做,我希望它创建另一个视图控制器。如果这是有道理的 –

+0

请参阅[链接](https://github.com/bizz84/SwiftyStoreKit),你可以实现 –

回答

0

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

  1. 您可以创建一个结构的全局实例,即您的“订阅添加”。在每个VC被解雇后,您可以更新此结构的每个属性的值(例如名称,金额,日期等)
  2. 您可以通过prepareForSegue将用户生成的数据传递给每个VC。这有点多余,所以我会建议做第一种方法。根据记录,这赛格瑞方法会是这个样子:

VC 1辞退:通行证名称VC2

VC 2辞退:通行证名称和数量VC3

VC 3辞退:通名称,金额和日期到VC4等......

一旦你有所有的信息,你可以显示最后一个VC,只需设置标签等你的结构的值,或值你通过了赛格。

编辑:在选项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); 

让我知道你是否还有其他问题。

+0

感谢您的回答,如果您不介意,您可以给我更多关于选项1的详细信息吗? –

+0

好的,谢谢你,我会在之前给你的,并会让你知道:) –

+0

你可以把结构放在任何你想要的地方,它不能在一个类中,这样你就可以在每个VC中达到它。 –

相关问题