Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
Dario Cardoso

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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]

Compartilhar este post


Link para o post
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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.

Entre para seguir isso  

  • 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
      48.577
    • Total de Posts
      416.320
×
×
  • Criar Novo...