2015-08-09 4 views
0

У меня есть ViewController, называемый VCA, в котором будет добавлен subview VCB. Этот VCB представляет собой созданный xib файл, который запрашивает более конкретные пользовательские ввод, позволяя пользователю нажимать несколько кнопок. У меня возникают проблемы с тем, как я могу передать значения, которые пользователь выбрал обратно в VCA. Любая помощь будет большимКак передать данные между ViewController и подвью ViewController

+1

Вы пытались создать протокол? – ErickES7

+1

Возможный дубликат [Передача данных между контроллерами просмотров] (http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – jlehr

ответ

4

Наиболее гибкий подход заключается в создании @protocol, что viewControllerA будет принимать, добавьте делегат viewControllerB, и при инициализации viewControllerB, сделать что-то в виде:

viewControllerB.delegate = viewControllerA 

В viewControllerB вызовите этот протокол:

self.delegate.doSomething() 

с помощью , вы можете передавать данные без привязки двух классов вместе; существует несколько хороших мест для установки делегата после создания viewControllerB, например, после его создания или до начала сеанса.

+0

Спасибо за помощь @SwiftArchitect! – Alan

+0

Еще одна вещь, атрибуты в viewControllerA становятся нулевыми после того, как я перехожу к этому процессу. У вас есть какие-то мысли о том, почему? Это мой viewDidLoad()? – Alan

+0

Это другой вопрос, на который я бы с радостью ответил. Пожалуйста, откройте другой вопрос, поместите в него ссылку в комментарии и убедитесь, что вы разместили код! – SwiftArchitect

0

Вы можете легко создать Singleton для обмена данными между вашими контроллерами View. К счастью, в Swift это очень просто.

Как так:

class MySingleton() { 
    static let sharedData = MySingleton() 
    var aVariable: Int = 4   

    init() {} 
} 

Вы можете затем вызвать одноплодной в любом месте с:

let ms = MySingleton.sharedData

и вызвать свойства с:

var newVar = ms.aVariable

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