11 Aralık 2010 Cumartesi

6. iPhone üzerindeki kontrolleri kod ile yönetmek

Bu bölümde bir önceki bölümde yaratmış olduğunuz Buton ve Label kontrollerini yazacağınız kodun yardımı ile yönetmeyi öğreneceksiniz.

Basit olarak butona basıldığında Label kontrolünde yazılı olan sayı değeri bir artacak. Bunun iPhone Xcode ortamında nasıl yapıldığını önce özetlemek isterim.

IB ile yarattığınız kontroller ( view, buton, label vs.) diğer SDK'larda olduğu gibi arka planda otomatik kodlar oluşturmaz. Yani siz .NET ortamında görsel editör ile bir buton yarattığınızda bunun kodsal karşılığı .NET tarafından ilgili class'a yazılır. Xcode'un davranışı bu şekilde değildir. Yarattığınız kontrollerin tanımları xib ( xml interface builder ) dosyasına yazılır. Bu kontrolleri yönetebilmek için Xcode'a gidip ilgili değişkenleri yaratmanız ve bu değişkenleri IB ile yarattığınız kontrollere bağlamanız gerekmektedir. 

Şimdi bu adımları Xcode ve IB kullanarak birlikte yapalım:

1. HelloWorld projenize gidip HelloWorldViewController.h dosyasını açın.
2. Aşağıda koyu ile belirtilen yerleri ekleyin.

@interface HelloWorldViewController : UIViewController {
    // UILabel tipinde bir değişken tanımlıyoruz.
    UILabel *lbl_sayi;
    NSInteger sayi;
}
// IBOutlet tanımı ile lbl_sayi değişkeninin UI'a bağlanabilecek bir kontrol olduğunu 
// belirtiyoruz. 
@property (nonatomic, retain) IBOutlet UILabel *lbl_sayi;
// Butona tıkladığımızda çalışacak olan methodun deklerasyonunu yapıyoruz.
// IBAction tanımlanan fonksiyonun Interface Builder(IB)'den çağıralabileceğini gösteriyor. 
-(IBAction) sayiArtir;

3. HelloWorldViewController.m dosyasını açın.


#import "HelloWorldViewController.h"

@implementation HelloWorldViewController
// lbl_sayi değişkeninin getter/setter methodlarını bu şekilde yaratıyoruz.
@synthesize lbl_sayi;

4. Yaptığınız değişiklikleri kaydettikten sonra HelloWorldViewController.xib dosyasına çift tıklayarak IB editörünü açın. Önceki bölümlerde anlatılan Library dışındaki üç ekranı da açın. Inspector ekranında üst tarafta yer alan soldan ikinci tab'ı yani Connection bölümünü tıklayın. Aynı zamanda HelloWorldViewController.xib ekranında da File's Owner satırına tıklayın. Bu noktada Inspector ekranında bir önceki adımda yarattığınız lbl_sayi ve sayiArtir tanımlarını aşağıdaki gibi görüyor olmalısınız.



Şimdi lbl_sayi kontrolünü View'daki Label ile sayiArtir fonksiyonunu da View'daki buton ile aşağıdaki gibi eşleştireceğiz.








Yaptığımız bu işlemler sonucunda UI kontrolleri ile kod bağlantısını gerçekleştirmiş olduk. Bir sonraki adımda butona bağladığımız sayıArtir fonksiyonunun kodlarını yazacağız.

5. HelloWorldViewController.m dosyasını açıp aşağıdaki satırları ekleyin.





-(IBAction) sayiArtir
{
// UILabel kontrolündeki değeri NSInteger'a çeviriyoruz.
sayi = [lbl_sayi.text integerValue];
// Sayi değerini 1 artır
sayi++;
// NSInteger tipini NSString tipine çevirip View üzerindeki UILabel kontrolüne atıyoruz.
lbl_sayi.text  = [NSString stringWithFormat:@"%ld",(long)sayi ];
}

6. Tüm projeyi kaydettikten cmd+R tuş kombinasyonuna basıp simülatörde yazdığınız kodu test edin. Simülatörü XCode ekranındaki "Build and Run" butonunu tıklayarak da çalıştırabilirsiniz.




Hiç yorum yok:

Yorum Gönder