Sobes.tech
Junior — Middle

Da li je moguće preneti događaj sa jednog View-a na drugi u trenutnom kontekstu?

sobes.tech АИ

Одговор од АИ

U iOS, direktno prenošenje događaja od jednog View-a do drugog u trenutnom kontekstu obično nije praksa, jer View-ovi ne bi smeli direktno da komuniciraju jedni sa drugima. Umesto toga, koristi se arhitektonski pristup gde se događaji prenose putem kontrolera ili drugih posrednika.

Na primer, ako je potrebno preneti događaj od jednog UIView-a do drugog, možete:

  • Koristiti delegati (delegatni obrazac), gde jedan objekat obaveštava drugog putem protokola.
  • Koristiti NotificationCenter za emitovanje događaja.
  • Koristiti closures za povratne pozive.

Primer sa NotificationCenter:

// Slanje obaveštenja
NotificationCenter.default.post(name: Notification.Name("CustomEvent"), object: nil)

// Pretplata na obaveštenje
NotificationCenter.default.addObserver(self, selector: #selector(handleEvent), name: Notification.Name("CustomEvent"), object: nil)

@objc func handleEvent() {
    // Obrada događaja
}

Na ovaj način, događaj se prenosi putem sistema obaveštenja ili posrednika, a ne direktno između View-ova.