Caso não tenha lido a primeira parte, clique aqui para ler.
Na segunda View, vamos criar uma classe personalizada para este controller. Assim vamos poder fazer algumas ações nesta View.
Criando ViewController para a View do StoryBoard:
Para isso, clicar na pasta raiz do seu projeto e criar um novo arquivo de Cocoa Touch Class. Criei com o nome de SegundoViewController.
Agora vamos relacionar a nossa classe ao ViewController.
Clicar no segundo ViewController e no lado esquerdo, abrir as opções do Identity Inspector (canto direito da imagem) e alterar a opção de CustomClass para a classe criado acima. Conforme figura abaixo.
Agora vamos deixar o label do segundo viewController acessível para a aplicação, vamos criar o IBOutlet para ele.
Selecione o label no Storyboard e com o Control apertado, arraste até para o fonte do arquivo H SegundoViewController.
Também criamos uma property NSString.
Ficando como o código fonte abaixo:
//
// SegundoViewController.h
// TesteStoryBoard
//
// Created by Douglas Romero on 14/10/15.
// Copyright © 2015 Douglas Romero. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface SegundoViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *segundoLabel;
@property (weak, nonatomic) NSString *txtSegundoLabel;
@end
Agora no arquivo M do SegundoViewController, vamos definir que o objeto de tela label tem o valor da propriedade NSString, implementar o viewDidLoad conforme o código abaixo:
//
// SegundoViewController.m
// TesteStoryBoard
//
// Created by Douglas Romero on 14/10/15.
// Copyright © 2015 Douglas Romero. All rights reserved.
//
#import "SegundoViewController.h"
@interface SegundoViewController ()
@end
@implementation SegundoViewController
- (void)viewDidLoad {
[super viewDidLoad];
_segundoLabel.text = _txtSegundoLabel;
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
No ViewController da primeira tela, vamos importar o SegundoViewController.
Realizar o import no ViewController.h.
//
// ViewController.h
// TesteStoryBoard
//
// Created by Douglas Romero on 05/10/15.
// Copyright © 2015 Douglas Romero. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "SegundoViewController.h"
@interface ViewController : UIViewController
@end
No M do ViewController, vamos implementar o método prepareForSegue, que irá notificar o segundo view controller.
Na implementação do método, iremos criar uma instancia do SegundoViewController e iremos definir o valor da propriedade txtSegundoLabel.
Conforme no código abaixo:
//
// ViewController.m
// TesteStoryBoard
//
// Created by Douglas Romero on 05/10/15.
// Copyright © 2015 Douglas Romero. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
SegundoViewController *destino = [segue destinationViewController];
destino.txtSegundoLabel = @"Chegou da Primeira Tela";
}
@end
Agora é só executar a aplicação e verificar o resultado.
Acabamos a segunda parte deste tutorial de trabalhando com StoryBoard.
Nenhum comentário:
Postar um comentário