2017-02-09 5 views
-1

В настоящее время я разрабатываю приложение для подписки. В настоящее время у меня есть 6 контроллеров просмотра, для которых есть разные опции. Например - Имя - Сумма - Дата и т. Д.Приложение для подписки

Как только пользователь завершит их, я хочу, чтобы он создал новый контроллер представления с этой информацией на нем. Итак, как только они вернутся на главный экран, они смогут прокрутить влево, и он покажет свою подписку.

Все, что я хочу знать, есть способ создать новый контроллер представления с их информацией об этом, когда они нажмут кнопку «Полная» на странице «Дата»? Передача данных в контроллер просмотра - это легкая часть. Мне больше интересно, как я могу создать новый контроллер представлений, когда они попытаются добавить еще одну подписку, если это имеет смысл.

Если нет, то я могу это сделать?

+0

У вас возникла проблема «создания нового контроллера представлений» или «передачи пользовательских данных в контроллер просмотра»? –

+0

Его создание нового контроллера. Я в основном так хочу, когда они помещают данные в Name - Amount - Date, которые будут отправляться в контроллер вида. Но если они снова это сделают, я хочу, чтобы он создал другой контроллер. Если это имеет смысл –

+0

Пожалуйста, обратитесь к [Link] (https://github.com/bizz84/SwiftyStoreKit), вы можете реализовать –

ответ

0

У вас есть два варианта, о которых я могу думать. Я уверен, что их больше, но это может помочь.

  1. Вы можете создать глобальный экземпляр структуры, которая является вашей подпиской на добавление. Затем вы можете обновить значения для каждого свойства этой структуры (например, имя, сумма, дата и т. Д.) После отклонения каждого VC.
  2. Вы можете передавать данные, которые ваш пользователь производит для каждого VC, через prepareForSegue. Это немного избыточно, поэтому я бы рекомендовал сделать первый метод. Для записи, этот метод Segue будет выглядеть примерно так:

VC 1 Свободны: Перевал Имя в VC2

VC 2 Свободны: Перевал Имя и Сумма VC3

VC 3 Свободны: Pass Имя, сумма и дата на 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. –

Смежные вопросы