Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Como passar dados de um xib para outro?

Featured Replies

Postado

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

  • Respostas 6
  • Visualizações 1.1k
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

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]

Postado
  • Autor

Legal,

Pode me enviar este exemplo montado no XCode como arquivo anexo para eu rodar ele aqui? Caso não como eu ligo estes códigos nas Views xib para testar?

Dario

Postado

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...

Postado
  • Autor

Não funcionou, poderia me enviar um exemplo feito com o XCode com 2 Views?

Postado
  • Autor

Amigo

Obrigado

É isto mesmo que preciso...

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…

Quem Está Navegando 0

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

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.