Sayfalar

20 Ağustos 2013 Salı

Navigation Controller

Bugün size NavigationController kullanımından bahsedeceğim.Öncelikle ne işe yarar ondan bahsedelim.Kısaca ekranlar arası geçişleri sağlar.Eğer uygulamamızda birden fazla ekran kullanacaksak navigationController kullanırız.Ana ekran görselini oluşturduğumuz gibi uygulamada kullanacağımız diğer ekranlar için de ViewController.xib gibi görsel oluşturup ekranlarda ne görüntülemek istiyorsak onu kodluyoruz.
Daha ayrıntılı olarak anlatacak olursak,yeni bir proje oluşturalım.
XCode'u açıp yeni bir uygulama başlatıyoruz.


Açtığımız projeye resimdeki gibi kullanacağımız ekran sayısı kadar ViewController sınıfı ekliyoruz.
ViewController sınıfı bizim ana ekranımızı oluşturacağımız sınıf.
Daha sonra ise ekranlar arası geçişleri yapabilmek için ekranlara buton yerleştirme işlemini yapıyoruz.
Şekildeki gibi buton ekleme işlemini diğer ekralar içinde yapıyoruz.Diğer ekranlara ek olarak geri dönüş butonları da ekliyoruz.
Geri dönüş butonunuda resimdeki gibi ekledikten sonra kodlama kısmına geçebiliriz.
//
//  ViewController.h
//  NavController
//
//  Created by mac on 7/18/13.
//  Copyright (c) 2013 mac. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end

//
//  ViewController.m
//  NavController
//
//  Created by mac on 7/18/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import "ViewController.h"
#import "ViewController1.h"

@interface ViewController ()

@end

@implementation ViewController

-(IBAction)ikinciEkranaGec{
    ViewController1 *viewCont =[[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];
    [self.navigationController pushViewController:viewCont animated:YES];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    self.title=@"1.Ekran";
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

//
//  ViewController1.h
//  NavController
//
//  Created by mac on 7/18/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController1 : UIViewController

@end

//
//  ViewController1.m
//  NavController
//
//  Created by mac on 7/18/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import "ViewController1.h"
#import "ViewController2.h"

@interface ViewController1 ()

@end

@implementation ViewController1

-(IBAction)ucuncuEkranaGec{
    ViewController2 *viewController2=[[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
    [self.navigationController pushViewController:viewController2 animated:YES];
}
-(IBAction)BirinciEkranaGeriDon{
    [self.navigationController popViewControllerAnimated:YES];
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.title = @"2.Ekran";
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

//
//  ViewController2.h
//  NavController
//
//  Created by mac on 7/18/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController2 : UIViewController

@end

//
//  ViewController2.m
//  NavController
//
//  Created by mac on 7/18/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import "ViewController2.h"
#import "ViewController3.h"

@interface ViewController2 ()

@end

@implementation ViewController2

-(IBAction)matEkraninaGec{
    ViewController3 *viewController3=[[ViewController3 alloc] initWithNibName:@"ViewController3" bundle:nil];
    [self.navigationController pushViewController:viewController3 animated:YES];
}
-(IBAction)ikinciEkranaGeriDon{
    [self.navigationController popViewControllerAnimated:YES];
}


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    
    self.title=@"3.Ekran";
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

//
//  ViewController3.h
//  AsalSayi
//
//  Created by mac on 7/16/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController3 : UIViewController{

IBOutlet UITextField *sonuc;

}

@property (retain,nonatomic) UITextField *sonuc;
@property (weak, nonatomic) IBOutlet UISlider *slider;
- (IBAction)sliderChanged:(id)sender;


-(IBAction)asalSayiBul:(id)sender;

@end

//
//  ViewController3.m
//  AsalSayi
//
//  Created by mac on 7/16/13.
//  Copyright (c) 2013 mac. All rights reserved.
//

#import "ViewController3.h"

@interface ViewController3 ()

@end

@implementation ViewController3

@synthesize sonuc;
@synthesize slider;

UIView *myAddedView ;


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.title=@"Matematik Ekranı";

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
    return (interfaceOrientation!=UIInterfaceOrientationPortraitUpsideDown);
}

- (IBAction)sliderChanged:(id)sender {
   
    NSLog(@"%f",floor(self.slider.value));
    [self asalSayiBul:nil];
   

- (IBAction)applyChances:(id)sender {
}


-(IBAction)asalSayiBul:(id)sender{
    if(myAddedView!=nil)
    {
while ([myAddedView.subviews count] > 0) {
//NSLog(@"subviews Count=%d",[[myScrollView subviews]count]);
[[[myAddedView subviews] objectAtIndex:0] removeFromSuperview];
        }
    }

    NSMutableArray * hilalinArrayi = [[NSMutableArray alloc] init];
    int sinir = floor(self.slider.value) ;
    int i;
    for (i = 2; i <= sinir; ++i) {
        int j = 0;
        
        for (j = 2; j < i; ++j) {
            if (i % j == 0) {
                break;
            }
        }
        
        if (j == i) {
            [hilalinArrayi addObject:[NSNumber numberWithInt:i ]];
        }
    }
    
    for (int a = 0; a<hilalinArrayi.count; a++) {
        int rowCount=15;
        float height=30;
        float width=30;
        float y=a%15*30;
        float x=a/rowCount * width;//(rowCount);
       
        NSNumber * sayi = [hilalinArrayi objectAtIndex:a];
        
        CGRect frame = CGRectMake(x, y, width, height);
        UILabel * hilalinTexti = [[UILabel alloc] initWithFrame:frame];
        hilalinTexti.text= [NSString stringWithFormat:@"%d",[sayi intValue] ];
        hilalinTexti.textAlignment = NSTextAlignmentCenter;
        hilalinTexti.font = [UIFont systemFontOfSize:10];
        [self.view addSubview:hilalinTexti];
    
    }
    [self.view bringSubviewToFront:self.slider];

}

@end

Yukarıdaki kodlamaları yaptıktan sonra yazdığımız fonksiyonları File's Owner'a bağlamayı unutmuyoruz.Eğer bağlama işlemlerni yapmazsak butonlara basınca istediğimiz metodları çalıştıramayız.
Bütün işlemleri bitirdik.Projeyi çalıştırıyoruz:)


Projeyi çalıştırınca yukarıdaki ekran görüntülerini elde ediyoruz.Kolay Gelsin..

Hiç yorum yok:

Yorum Gönder