iOS Programlamada Segue Kullanımı

Halil Özel
Jun 21, 2018 · 4 min read

Merhabalar Arkadaşlar,

Bugünkü yazımda Swift-4 kullanarak iOS programlamada Segue kullanımından bahsedeceğim. Hazırsanız haydi başlayalım :)

Image for post
Image for post

Segue Nedir ?

Image for post
Image for post

Segue, uygulamanızın storyboard dosyasındaki iki görüntüleme denetleyicisi arasında bir geçişi tanımlamaktadır. Ekranlar arası geçişi ifade eder. Android programlamada bu yapının karşılığı Intent dir. Segue kısaca bir sayfadan başka bir sayfaya geçmeye yarayan yapının adıdır.

Segue’ye Hazırlık - View Controller Ekleme

Image for post
Image for post

Segue oluşturmadan önce yapmamız gereken ilk iş yeni bir View Controller alıp ekrana bırakmak. Bırakılan görüntüyü düzenliyoruz.

Image for post
Image for post

Sol taraftaki projenin ilk View Controller bileşeni sağ tarafta ise yeni eklenen View Controller. Eklenen yapının bir Controller dosyası lazım. Bu dosya default olarak gelmemektedir. Biz bu dosyayı oluşturunca bu Controller da tanımlanmış objeleri rahatlıkla kullanıp işlemler yapabileceğiz. Aşağıdaki adımları takip ederek yeni bir Controller View dosyası oluşturmayı göreceksiniz :

Image for post
Image for post

Bir önceki resimde gözüken ekranın Sol üstünde bulunan sarı bir butona butonu seçip File / New / File yolunu izleyerek yeni bir Controller sınıfı tanımlayabilirsiniz. Alt sınıf olarak UIViewController seçiliyor. Ve gerekli işlemler tamamlandı.

Bir sonraki işlemde ise 2.ekranda en üst solda bulunan butona tıklanıp class ismi veriliyor.

Image for post
Image for post

Class seçme yerine tıklanıp oluşturduğumuz class seçiliyor.

import UIKitclass SecondViewController: UIViewController {// sınıfımıza oluşturulan label eklendi@IBOutlet weak var myLabel: UILabel! 
override func viewDidLoad() {super.viewDidLoad()}

Segue Nasıl Oluşturulur ?

Birinci ekrana bir buton ekledik. Butona tıklanınca bir sonraki sayfaya gitmesi için buton seçiliyken alt tuşuna basılarak ikinci ekrana bir ok çıkarılır. Ok çıkarıldıktan sonra bizlere hangi tür Segue kullanacaksın diye bir seçenek sunuyor. Biz ise show türünü seçerek aşağıdaki görüntüyü elde ediyoruz.

Image for post
Image for post

Yukarıda anlatıldığı gibi ok ile Segue oluşturulmuş oldu. Ok ile gösterilen bağlantı seguelerin olduğunu ifade eden yapılardır.

Test Aşaması

Artık uygulamayı deneme zamanı geldi. Run tuşuna basıp uygulamayı başlatıyoruz.

Image for post
Image for post

Açılış ekranında 1. View Controller şeklinde bir label ve Go adına bir buton gözükmektedir. Kullanıcı go butonuna tıklayarak bir sonraki sayfaya gidebilecek. Bizlerde o butona tıklayarak bir sonraki sayfaya gidiyoruz ve bizi 2. View Controller text’i karşılıyor.

Örnek 2 : Kullanıcının adını bir sonraki sayfada gösterme

Evet Arkadaşlar her zaman buton ile bir sayfadan başka bir sayfaya geçeceğiz diye bir kural yok. Bu örneğimizde kullanıcının adını alarak bir sonraki ekrandan diğerine aktarma işlemini yapacağız.

Image for post
Image for post

Basit bir şekilde ekran tasarımı yaptık. Sağdaki ekrana bir kaydetme butonu ve birde text alanı ekledik. İkinci ekranda ise girilen text’in gösterilmesi için label eklendi.

Image for post
Image for post

Bir önceki örnekte butona basılınca ona özgü segue oluşturmuştuk. Bu örnekte ise yukarıdaki sarı butona basıp ctrl tuşu ile sürükle bırak mantığını kullanarak tüm ekrana segue ataması yaptık. Artık kullanıcı save butonuna tıklayarak direkt diğer sayfaya geçebilecek.

Image for post
Image for post

Bu kullanımda seguelerin denetimini kolaylaştırmak için identifier veriyoruz. Bu yapayı metodun içerisinde kullanacağız.

@IBAction func saveClicked(_ sender: Any) {username = nameText.text! // alınan değer text içeriğindeki değere eşit olacakperformSegue(withIdentifier: “allCV”, sender: nil) // segue çalışması için gerekli metod}

performeSegue metodu ile oluşturduğumuz segue’yi başlatabiliyoruz. Kullanıcıdan text değeri alınıp userName değişkenine atanıyor.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // segue başlamadan önce çalışacak fonksiyonif segue.identifier == "allCV"{// değişken gibi işleme tabi tutmak için yapıldı.let destinationVC = segue.destination as! SecondViewController // artık bu yapıya ait tüm özelliklere erişim mevcut hale geldi.destinationVC.name = username // ikinci ekrandaki name değişkeni ile birinci ekrandaki username değeri eşleştirildi.}}

Segue başlamadan önce gidilecek olan ekranın destination’ına bakılıyor. Eğer verilen değer ile uyuşuyorsa oradaki name değerine ilk ekrandaki değeri eşitleme işlemi yapılıyor.

var name = “”override func viewDidLoad() {super.viewDidLoad()nameLabel.text = “Name is : \(name)”}

Son olarak kullanıcı butona tıklayarak eşleşen verileri ikinci ekranda göstermek için viewDidLoad() fonksiyonunda oluşturulan name değişkenini label’ın text değerine atayarak işlemi sonlandırıyoruz.

Image for post
Image for post

Ekran açıldı ve name olarak Halil değerini girdim. Save tuşuna basarak bir sonraki ekrana yönlendirildim. İkinci ekranda “Name is : Halil” yazısı ile karşılaştım. Yukarıdaki back tuşuna basarak geriye gidebilirsiniz.

Evet Arkadaşlar elimden geldiğince sizlere Segue kullanımından bahsettim. İnşallah yararlı olur. Bir sonraki yazıda görüşmek üzere kendinizi iyi bakın. Bol kodlu günler dilerim :)

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store