Ir para conteúdo
  • Cadastre-se

Como passar dados de um xib para outro?


Posts Recomendados

Amigos

To fazendo um programinha bobinho no iPad

Ele tem apenas 2 xib um principal e outro que pergunta alguns dados para retornar no principal

No xib principal coloquei um botão que chama o outro xib através da seguinte rotina

Localizar2 *localizar2 = [[Localizar2 alloc] initWithNibName:@"Localizar2"

bundle:nil];

self.localizar2 = localizar2;

[self.view insertSubview:localizar2.view belowSubview:self.view];

[localizar2 release];

Com este codigo o xib principal fica atrás e eh chamado o outro xib

Neste outro xib tem um botão que quando apertado retorna ao xib anterior, este botão tem o seguinte codigo

[self.view removeFromSuperview];

Neste pronto ele volta para o xib anterior

O que eu quero fazer eh que quando o usuario digitar o CAMPO NOME no outro xib, que o conteudo ao retornar para o xib principal venha preenchido tendo em vista que nos 2 xib eu tenho o CAMPO NOME

Alguem sabe como fazer?

Dario

Link para o comentário
Compartilhar em outros sites

  • Respostas 6
  • Criado
  • Última resposta

Top Postadores Neste Tópico

atravez de delegate.

Delegate em si:


//
// StringDelegate.h
#import <Foundation/Foundation.h>
@protocol StringDelegate <NSObject>
- (void)passString:(NSString *)text;
@end
[/CODE]

View que passa o texto de um uitextfield para o delegate.

[CODE]
//
// AddNameViewController.h

#import <UIKit/UIKit.h>
#import "StringDelegate.h"
@interface AddNameViewController : UIViewController{
UITextField *nameField;
id delegate;
}
@property(nonatomic, retain) IBOutlet UITextField *nameField;
@property(nonatomic, assign) id <StringDelegate> delegate;
- (IBAction)doneAction;
@end
[/CODE]

[CODE]
//
// AddNameViewController.m

#import "AddNameViewController.h"
@interface AddNameViewController ()
@end
@implementation AddNameViewController
@synthesize delegate = _delegate;
@synthesize nameField;
- (id)delegate {
return delegate;
}
- (void)setDelegate:(id)newDelegate {
delegate = newDelegate;
}
- (IBAction)doneAction {
[delegate passString:[nameField text]];
}
- (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.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
[/CODE]

View que recebe o texto do delegate:

[CODE]
//
// ItemViewController.h

#import <UIKit/UIKit.h>
#import "StringDelegate.h"
@interface ItemViewController : UIViewController<StringDelegate>
- (IBAction)CallModal:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *textReturn;
@end
[/CODE]

[CODE]
//
// ItemViewController.m

#import "ItemViewController.h"
#import "AddNameViewController.h"
@implementation ItemViewController
@synthesize textReturn;
- (void)passString:(NSString *)text{
//Do other checks before dismiss...
textReturn.text = text;
[self dismissModalViewControllerAnimated: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.
}
- (void)viewDidUnload
{
[self setTextReturn:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)CallModal:(id)sender {
AddNameViewController *addName = [[AddNameViewController alloc] init];
addName.delegate = self;
[self presentModalViewController:addName animated:YES];
}
@end
[/CODE]

Link para o comentário
Compartilhar em outros sites

Crie um objeto da view1 na view2...


@property(nonatomic, retain) View1 *view;
[/CODE]

No código em que você chama a segunda view, sete o objeto do tipo View1 que está na View2...

[CODE]
view2.view1 = self;
[/CODE]

No código em que você fecha a segunda view, você seta o campo que vc tem na View1

[CODE]
view1.campoNome = @"Alguma coisa";
[/CODE]

Axo que assim vai funcionar...

Link para o comentário
Compartilhar em outros sites

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.



  • Estatísticas do Fórum

    • Total de Tópicos
      56.5k
    • Total de Posts
      466.1k
×
×
  • Criar Novo...