2016-11-03 5 views
1

Передача данных на следующий viewController проста и понятна и может быть выполнена с использованием метода prepareSegue. Однако я не могу понять, как передавать данные на предыдущий viewController в Swift (приложение Cocoa)Как передать данные в предыдущий ViewController в Swift (приложение Cocoa)

У меня есть текстовое поле в viewControllerB, и когда вы вводите что-то в нем и нажимаете кнопку, я хочу передать его label в viewControllerA и вместо того, чтобы открывать viewControllerA в новом окне, я просто хочу, чтобы viewController B был уволен, а переданные данные должны быть видны на viewControllerA.

Это все, что нужно. Я застрял на нем последние 48 часов. Любая помощь по этому поводу будет оценена по достоинству.

Спасибо!

+0

Вы пытались с протоколом/делегатом? –

+0

Мы можем использовать seke unwind too –

ответ

2

Вы делаете это с помощью делегатов. Пример:

protocol NextProtocol: class { 
    func sendBack(value: Int) 
} 

class Previous: NextProtocol { 
    func sendBack(value: Int) { 
     print("I have received \(value)) 
    } 

    func prepareSegue(...) { 
     // get next instance 
     var next: Next 
     next.delegate = self 
    } 
} 

class Next { 
    weak var delegate: NextProtocol? 

    func someMethod() { 
     delegate?.sendBack(5) 
    } 
} 
+0

Просто путаница, почему используется функция prepareSegue в классе firstViewController? –

+0

@ O.Naeem То же, что и вы передаете данные вперед, вы пересылаете, кому хотите получать данные. Я упомянул prepareSegue, потому что вы сказали, что отправляете туда данные. – Sealos

+0

Огромное спасибо! Работает блестяще! –

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

  • Нет связанных вопросов^_^