У меня есть 2 ViewControllers в моем приложении. Один из них по имени vcA использует метод (здесь viewDidLoad), чтобы поговорить с моим сетевым уровнем (класс в моем приложении). После завершения сетевого задания (которое будет выведено обработчиком завершения) я хочу уведомить класс vcB о вызове метода для получения некоторых данных, которые предоставляются сетевым уровнем. Пожалуйста, обратите внимание на ниже SUDO код:Swift: Уведомление ViewController от другого с помощью обработчика завершения
class Networking {
static var PublicValue : SomeKindOfClass? = nil
static func test(completionHandler : (successful : Bool) -> Void) -> Void {
//Do some networking in background
Network.BackgroundNetworking() {
if result = true {
PublicValue = SomeValue
completionHandler(successful : true)
}
else {
completionHandler(successful : false)
}
}
}
class vcA : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
Networking.test(completionHandler : { (successful) in
if successful == true {
//Here I want to notify class vcB to call printPublicValue method
}
})
}
}
class vcB : UIViewController {
func printPublicValue() {
print(Networking.PublicValue)
}
}
Используйте NSNotifications – Paulw11
спасибо , Я читал об этом здесь, но я не могу понять, в чем разница. B/W NSNotifications & NSNotificationCenter & performSelector & KVO, и какой из них подходит для моего случая? –