Objective-C'de Öğeleri Yönlendirme İşlevleri, iOS ve macOS uygulamaları için gerekli olan temel bir konudur Bu eğitim, bu işlevleri öğrenmek isteyenler için harika bir kaynak Objective-C'deki yönlendirme işlevleri ile uygulamalarınızı daha işlevsel hale getirebilirsiniz Bu eğitimi siz de hemen keşfedin!

Objective-C programlama dilinde, birbirleriyle etkileşimli hale getirilen arayüz parçaları arasında yönlendirme işlevleri kullanılır. Bu işlevleri kullanarak, uygulama kullanıcısı belirli bir arayüz parçasından diğerine geçebilir. Bu makalede, Objective-C'de öğeleri yönlendirmek için kullanılan işlevleri ve bunların nasıl kullanıldığını tartışacağız.
Bu makale, öncelikle IBAction ve IBOutlet işlevlerine odaklanacak. IBAction işlevi, arayüz parçalarını etkileşimli hale getirmek için kullanılırken, IBOutlet işlevi, arayüz parçalarını kodda tanımlamak için kullanılır. Bununla birlikte, Strong Reference, Weak Reference ve Unowned Reference kavramları da tartışılacaktır. Bu referans türleri, bir nesneye referans oluştururken, o nesnenin ömrünü nasıl etkilediğimize bağlıdır.
Property işlevi, bir sınıf özelliği olarak tanımlanan bir değişkenin erişimini kontrol etmek için kullanılır. PerformSegue işlevi, bir görünüm denetleyicisinden diğerine geçmek için kullanılırken, Segue kimliği, farklı görünüm denetleyicileri arasında yönlendirmeyi tanımlayan bir parametredir. Son olarak, Unwind işlevi, bir görünümden çıkış yapmak için kullanılır.
Push ve pop işlevleri, iOS uygulamalarında yönlendirme işlevleri için kullanılır. Bu işlevler, UINavigationController tarafından yönetilir ve push ve pop yöntemleri kullanılarak görünüm denetleyicileri arasında geçiş yapılır.
IBAction İşlevi
Objective-C dilinde kod yazarken, kullanıcının etkileşimde bulunabileceği arayüz parçalarına ihtiyacımız olacaktır. Bu parçaların etkileşimini sağlamak için IBAction işlevini kullanırız. IBAction işlevi, butonları, etiketleri, metin alanlarını vb. arayüz parçalarını etkileşimli hale getirir. Kısacası, kullanıcıların bir şeyler yapabilmesi için arayüz parçalarını etkinleştiren bir işlevdir.
Bir IBAction işlevi tanımlamak için, fonksiyon başına IBAction deklarasyonu ekleyerek tanımlanır. Örneğin, bir butona tıkladığımızda aktifleşen bir IBAction işlevi aşağıdaki gibi tanımlanabilir:
Kodu | Açıklama |
---|---|
- (IBAction)butonTiklandi:(id)sender; | butonTiklandi işlevi, bir butona tıklandığında çağrılır |
IBAction işlevi, arayüz parçasına etkinleştirme mekanizması ekler ve parçanın kullanıcının etkileşimleri için kodu tetiklemesini sağlar. Örneğin, bir butona tıklayarak bir e-posta göndermek istediğimizde, butonun IBAction işlevi, e-posta göndermek için gerekli kodu çalıştırır.
Bu nedenle, IBAction işlevi, arayüz parçalarını çalıştıran bir anahtar işlevdir. iOS uygulamalarının temel özelliklerinden biri olan kullanıcı etkileşimlerini yönetmek için IBAction işlevine sıkça başvurulur.
IBOutlet İşlevi
Objective-C programlama dili, bir arayüzde bulunan nesneleri referanslamak için IBOutlet işlevini kullanır. IBOutlet işlevi, bir arayüz parçasının kod üzerinde kullanılabileceği bir değişkene bağlanmasını sağlar. Örneğin, bir butonu ya da bir labeli bir sınıf içerisinde kullanmak için IBOutlet işlevi kullanılabilir.
Bir arayüz öğesi için IBOutlet işlevini kullanmak için, öncelikle arayüz dosyasında IBOutlet deklarasyonunun yapılması gereklidir. Sonrasında, bu IBOutlet nesnesinin kodda nasıl kullanılacağı belirtilmelidir. IBOutlet deklarasyonu şu şekilde yapılabilmektedir:
@interface ViewController : UIViewController |
@property (nonatomic, weak) IBOutlet UIButton * myButton; |
@end |
Bu örnekte, UIViewController sınıfının bir örneği olan ViewController için bir IBOutlet deklarasyonu yapılmıştır. Bu deklarasyon, myButton adında bir UIButton öğesi tanımlamaktadır. Bu UIButton öğesi, ViewController sınıfının bir örneği içerisinde kullanılabilir hale getirilmiştir.
IBOutlet işlevi, Objective-C programlama dilinin arayüz oluşturma ve kullanımına dair önemli bir özelliği olarak karşımıza çıkmaktadır. İyi bir kullanım ile arayüz öğeleri program içerisinde fonksiyonel bir şekilde kullanılabilmektedir.
Strong Reference
Strong Reference bir nesneye kuvvetli bir referans oluşturur ve nesnenin ömrünü uzatır. Bu referans türü, bir nesnenin hafızada kalması için gerekli olan şeylerden biridir. Strong reference, nesne ömrünü uzatmanın yanı sıra, başka bir işlem tarafından erişilmediği sürece nesnenin kaybolmasını da önler.
Bir örnek vermek gerekirse, bir UIViewController nesnesinin bir strong reference’a sahip olması, bu nesnenin uygun bir şekilde yürütülmüş olması ve bellek kaynaklarının tutulmasını da sağlar. Bir strong reference, ayrıca bir immutable nesne için de oluşturulabilir. Bu durumda, nesne birden fazla işlem tarafından erişilebilir olsa da değiştirilemez, ancak güvenli bir şekilde kullanılabilir.
Bir nesneye strong reference oluşturmak için, normal bir değişken oluşturulurken kullanılan sözdizimi kullanılır. Örneğin:
- NSString *string = @"Merhaba!";
- UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Kaydet" style:UIBarButtonItemStyleDone target:self action:@selector(kaydetButtonTiklama:)];
Bu örneklerde, string değişkeni için strong reference, alloc ve initWithTitle metoduna sahip barButtonItem nesnesi için strong reference oluşturulmuştur.
Bu şekilde, Objective-C'de öğeleri yönlendirmek için kullanılan diğer işlevler gibi, strong reference’ın da kullanımı oldukça yaygındır. Bu nedenle, bir nesnenin hafızada kalmasını sağlamak için strong reference kullanmak oldukça önemlidir.
Weak Reference
=Zayıf referans, bir nesneye zayıf bir referans oluşturur ve onun ömrünü uzatmaz. Kuvvetli referanslar, nesneye güçlü bir referans sağlar ve nesnenin bellekte kalmasını sağlar. Ancak, bir nesne birçok referans tarafından tutulursa, bellekte depolama sorunları ortaya çıkabilir. Bu durumda, zayıf referanslar kullanılır.
Zayıf referanslar, bir nesne referansının nesnenin ömrünü uzatmadan kullanılmasını sağlar. Eğer nesne bellekte bulunursa, zayıf referans hala nesne hakkında bilgi sağlayabilir, ancak bellek sıkıştırılmışsa veya silinmişse, zayıf referans hata mesajlarına neden olmaz.
Zayıf referanslar kullanılırken önemli bir husus, nesne oluşturulduktan sonra hemen silinmemesi gerektiğidir. Aksi takdirde, zayıf referans hala nesne hakkında bilgi sağlamaya çalışacak ve bir hata mesajı verilecektir. Zayıf referansların kullanımı, özellikle büyük uygulamalarda, performansı artırmak ve bellek kullanımını azaltmak için önemlidir.
Unowned Reference
Unowned Reference
Objective-C programlama dili, bir nesneye başvurmak için farklı referans türleri sunar. Bunlardan biri de "Unowned Reference" işlevi olarak bilinir. Bu referans türü, bir nesneye sahiplenme olmadan doğrudan başvurmanıza olanak sağlar. Unowned referans, güçlü bir referans kadar ömür boyu sürmez. Bununla birlikte, nesneye atıfta bulunmaya çalıştığınızda, nesne hala mevcut değilse program hatalarına neden olabilir.
Unowned referans, özellikle döngülerde kullanılması durumunda kullanışlıdır. Bu durumlarda bir nesne, başka bir nesne tarafından sahiplenilmeden başka bir nesneye referans verip ömrünü uzatmak istiyorsanız Unowned referans kullanılması faydalı olabilir.
Bir Unowned referanstaki nesne, başka bir örneğe sahip değilse, Unowned referans herhangi bir değer atamadan önce nil olarak ayarlanabilir. Bununla birlikte, bir Unowned referans, değer atandığında, nil değerine sahip olamaz. Bu nedenle, bir Unowned referansı nil değeri ile karşılaştırmanız gereken durumlarda, öncelikle güvenliğiniz için güvenle kullanılabilen optional değerleri kontrol etmek her zaman daha uygundur.
Property İşlevi
Objective-C dilinde bir sınıfın özelliklerine erişmek için property işlevi kullanılır. Property, bir sınıf değişkenine atanmış bir değeri temsil eder ve özelliklerinin erişimini kontrol etmek için kullanılır.
Property işlevi sayesinde, bir sınıf özelliğinin erişim seviyesini ve diğer özelliklerini kontrol edebilirsiniz. Property işlevi ayrıca, bir sınıfın başka sınıflara özelliklerini açığa vurmasını sağlamaktadır.
Aşağıdaki örnek, property işlevi kullanarak bir sınıf özelliği tanımlar:
// Header dosyası@interface Ogrenci : NSObject@property NSString *isim;@end// Kaynak dosyası@implementation Ogrenci@end
Bu örnekte, Ogrenci sınıfında bir isim özelliği tanımlanmıştır ve değişkenin tipi NSString olarak belirtilmiştir. Property işlevi, sınıfın diğer kısımlarından erişilip değiştirilebilen bir özelliği temsil etmektedir.
Property işlevi, programcılara bir sınıfın özelliklerinde değişiklik yapmadan önce kontrol sağlama yeteneği sunar. Bu da kod kalitesini arttırır ve sınıfın kullanımını daha güvenli hale getirir.
PerformSegue İşlevi
Objective-C dilinde bir görünüm denetleyicisinden diğerine geçmek için kullanılan önemli bir işlev de performSegue işlevidir. Bu işlev, görünüm denetleyicileri arasında geçiş yapmak için kullanılır ve sıklıkla mobil uygulamalarda tercih edilen bir yöntemdir.
PerformSegue işlevi, storyboard dosyasında tanımlanan bir bağlantı noktası aracılığıyla görünüm denetleyicileri arasında geçiş yapmak için kullanılır. Bu bağlantı noktası, bir kullanıcının bir düğmeye veya bir tabandan tıklaması gibi bir olayın tetiklenmesiyle otomatik olarak çalıştırılabilir.
Ayrıca, PerformSegue işlevi, geçiş yapılacak görünüm denetleyiciyi belirtmek için bir kimlik parametresi içerebilir. Bu kimlik parametresi, bir storyboard dosyası içinde bulunan farklı görünüm denetleyicileri arasında geçişleri tanımlamak için kullanılır.
PerformSegue işlevi, mobil uygulamalarının kullanıcı arayüzüne ek fonksiyonellik eklemek için önemli bir araçtır. Kendi uygulamanızda bir PerformSegue işlevi oluşturarak, kullanıcı etkileşimleri için daha zengin bir deneyim sağlayabilir ve uygulama performansını artırabilirsiniz.
Segue Kimliği
Segue kimliği, Objective-C programlama dilinde farklı görünüm denetleyicileri arasında yönlendirmeyi tanımlayan bir parametredir. Bu parametre, segue işlevini kullanarak bir görünüm denetleyicisinden diğerine geçişi sağlar. Segue kimliği, bir görünümün özelliklerini değiştirmeden, o görünümdeki bilgilerin başka bir görünümde de görünmesini sağlar.
Sınıflar arasında bağlantı oluşturma işlemi için segue kimliği kullanılır. Bu bağlantı, görünüm denetleyicileri arasında geçiş yapılması için önemlidir. Segue kimliği adı verilen bir adlandırma yöntemi ile bir görünümün başka bir görünüme bağlantısı gerçekleştirilir. Bu kimlik sayesinde, kullanıcı etkileşimi sonrasında, bir görünüm denetleyicisinden başka bir görünüm denetleyicisine geçiş yapılır.
Segue kimliği, iOS programlama dilinde sıklıkla kullanılan bir işlevdir. Bu işlev, programcıların uygulamalarını daha etkileşimli hale getirmelerine olanak sağlayarak kullanıcı deneyimini artırır. Bunun yanı sıra, kullanıcılar da aynı iOS uygulaması içinde farklı sayfalar arasında geçiş yapabilme kolaylığına sahip olurlar.
Unwind İşlevi
Objective-C programlama dili, Apple'ın iOS ve Mac işletim sistemlerindeki birçok uygulama geliştirmek için kullanılır. Bu programlama dilinde, bir görünümden çıkış yapmak için Unwind işlevi kullanılır. Unwind işlevi, bir dizi görünüm denetleyicisi arasında geçiş yapmayı sağlar ve sadece iOS 6 ve üstü sürümlerde kullanılabilir.
Bir uygulamada, kullanıcılar genellikle birkaç görünüm arasında geçiş yapar. Bu zaman içinde, örneğin; kullanıcı hesabı, sipariş tamamlandı vb. gibi durumlarda, belirli görünümlerden çıkış yapmak gerekebilir. İşte bu noktada Unwind işlevi devreye girer. Bu işlev, bir önceki görünüme geri dönmek için kullanılabilir.
Bir önceki görünüme geri dönüş işlemi, bir segue aracılığıyla gerçekleştirilir. Segue, UIKit'te, bir görünümden diğerine geçmek için kullanılan bir arayüzdür. Unwind işlevinin çağrılmasını sağlamak için, görünüm denetleyicisinde bir aksiyon yöntemi belirleyin ve segue'yi yönlendiren görünüm denetleyiciye bağlayın.
Push ve Pop İşlevleri
iOS uygulamalarında, kullanıcıların farklı ekranlar ve denetleyiciler arasında gezinmesi gerekebilir. İşte bu noktada, Push ve Pop işlevleri devreye girer. Push işlevi, yeni bir görünüm denetleyicisi yığınına geçişi başlatırken, Pop işlevi, mevcut görünüm denetleyicisini tekrar yükleme özelliğine sahiptir.
Push ve Pop işlevleri, navigation controller örneği ile birlikte kullanılabilir. Bu sayede, kullanıcıların rahatlıkla gezinmesi sağlanır. Push işlevi, nesne örneği olarak kullanılan bir görünüm denetleyicisini, kullanıcıya sunulacak olan yığına yerleştirir. Bu sayede, yeni görünüm denetleyicileri yığında birikir ve kullanıcı, onları açtıkça öncekilere geri dönebilir.
Pop işlevi ise, mevcut görünüm denetleyicisini kapatıp, bir önceki görünüm denetleyicisi yığınını açar. Kullanıcı, geri dönmek istediği zaman Pop işlevi kullanılabilir. Ancak, geri dönüş işlemi tamamen lineer değildir. Kullanıcı, istediğinde herhangi bir görünüm denetleyicisine geçebilir veya bir arada birden fazla görünüm denetleyicisini kapatabilir.
Push ve Pop işlevleri, aynı zamanda appdelegate sınıfının başlatma yöntemlerinde de kullanılabilir. Bu sayede, bir uygulamanın başlangıcında, kullanıcılar direkt olarak istedikleri görünüm denetleyicisine yönlendirilebilirler.
Kısacası, Push ve Pop işlevleri, iOS uygulama geliştiricilerinin yolculuğunda çok önemli bir rol oynar. Bu işlevler, uygulamanın kullanıcı dostu olmasını, gezinmenin kolaylaşmasını ve genel olarak uygulama deneyimini arttırmayı sağlarlar.
UINavigationController
Objective-C dilinde öğeleri yönlendirmek için kullanılan önemli bir işlev, UINavigationController'dur. UINavigationController, push ve pop işlemlerini yönetmek için kullanılan bir görünüm denetleyicisidir. Yapısı, iOS kullanıcı arayüzünün temel yapısını oluşturur.
UINavigationController, birçok görünüm denetleyicisiyle birlikte kullanılabilir. Bu sayede, bir iPhone uygulamasında birçok farklı ekran arasında geçiş yapmak kolay hale gelir. Örneğin, bir film seansı rezervasyon uygulamasında, bir görünüm denetleyicisi filmleri gösterirken diğer bir görünüm denetleyicisi, bir film seansını seçtikten sonra koltukları gösterir. Bu işlemler, UINavigationController ile kolayca yönetilebilir.
Metot | Açıklama |
---|---|
init(rootViewController:) | İlk görünüm denetleyicisini belirterek bir UINavigationController örneği oluşturur. |
pushViewController(_:animated:) | Belirli bir görünüm denetleyicisine geçiş yapmak için kullanılır. |
popViewController(animated:) | Herhangi bir görünüm denetleyicisinden önceki bir görünüme pop yapar. |
Bu metotlar, UINavigationController'ın yönettiği görünüm denetleyicileri arasında geçiş yapmak için kullanılabilir. Belirli bir görünüm denetleyicisine geçiş yapmak için pushViewController() metodu kullanılırken, popViewController() metodu ile herhangi bir görünüm denetleyicisinden önceki bir görünüme pop geçişi yapılabilir.
UINavigationController, iOS kullanıcı arayüzünde çok önemlidir. İPhone uygulamalarında görünüm denetleyicileri arasında geçiş yapmak için kullanılan en temel araçlardan biridir. Yeni bir uygulama geliştiriyorsanız, UINavigationController'ı iyi bir şekilde anlamak ve kullanmak oldukça önemlidir.
Push ve Pop Yöntemleri
Push ve pop yöntemleri, iOS uygulamalarında sıklıkla kullanılan ögeleri yönlendirmek için kullanılır. Push yöntemi, geçiş yapılacak yeni görünüm denetleyicisini mevcut olanın üzerine yığıp ekler. Pop yöntemi ise mevcut görünüm denetleyicisini kaldırarak, en son eklenen görünüm denetleyicisine geri dönmeyi sağlar.
Push ve pop yöntemleri genellikle UINavigationController ile birlikte kullanılır. UINavigationController, bir dizi görünüm denetleyicisini yığın olarak tutarak, bu işlemleri yönetir. Push yöntemi, bir sonraki görünüm denetleyicisine geçiş yapmak için kullanıldığında, Yığın Navigasyon Denetleyicisinde yeni bir öğe oluşturulur ve yeni görünüm denetleyicisi eklenir. Pop yöntemi ise en son geçiş yapılan görünüm denetleyicisi yığından kaldırılarak, öncekine geri dönülmesini sağlar.
Bu yöntemler, iOS uygulamalarının daha kullanıcı dostu ve akıcı bir deneyim sunmasına yardımcı olur. Push ve pop işlevleri ile yönlendirmeler kolayca yapılarak, uygulama arayüzlerindeki geçişler daha anlaşılır hale getirilir.