2017-02-09 108 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中達到它。 –