Swift Outlet ve Action

Merhabalar. Bu yazımda Swift‘e yeni başlayan arkadaşlar için outlet ve action farklarından bahsedeceğim. Aslında çok basit bu fark bazen bize sıkıntıya sokabiliyor. Bazı arkadaşlar bu tercihlerin nereden geldiğini de bilmeyebilir. Ben baştan anlatacağım. İlk önce XCode‘da bir proje açmanız gerekiyor. Projeyi açtığınızda karşınıza böyle bir ekran gelecek. Bu sayfa proje bilgilerimizin yer aldığı bir sayfadır. Bizim şu anda bu sayfa ile bir işimiz yok. Biz daha çok Main.storyboard ile işimiz var.

Main.storyboard ekranını açtığımızda ise karşımıza böyle br ekran çıkıyor. Bu ekran tasarım yapabilip, sayfamıza Controller atabiliyoruz. Buraya controller atıp, denemeler yapacağız. İlk önce bir button atayalım.Buton atamak için sayfa tasarımının üstünde yuvarlak sarı butona tıkladığımızda sağ alt taraf da controller var. Buradan butonu seçmemiz gerekmekte. Arama kısmına button yazdığımızda direk zaten çıkıyor. Butonu sürükle bırak yöntemiyle sayfaya atıyoruz. Sonrasında outlet ve action farkı belli olsun diye bir de label atıyorum.

Atadığım button ve label’ı command tuşuna basılı tutarak mouseun sol tuşu ile classın içine atamamız gerekmekte. Sürüp bıraktığınız zaman karşınıza ufak bir seçenek ekranı geliyor. Bu ekranda connection seçeneği var. Burada outlet ve action seçenekleri var. Farkları şudur ki outlet seçtiğimiz zaman o controllerın yani labelin fiziksel özelliklerini değiştiriyoruz. Action ise bir olay olduğu zaman olacakları yazıyoruz. Yani labela tıklandığında veya butona dokunulduğunda olacakları yazıyorum. Ben burada butona dokunulduğunda labelda ki yazıyı değiştirceğim. O yüzden labelı outlet olarak seçiyorum. Buttonı ise action olarak. Name dediğimiz ise vereceğimiz isimdir.

Burada controllerı yerleştirdiğimizde butona tıklama fonksiyonuna geliyoruz ve butona tıkladığımızda denemelabel ismini verdiğimiz labelın text özelliğini değiştiriyoruz.

Aslında outlet ve action arasında ki farkı böyle özetleyebiliriz. Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.