Ir para conteúdo
  • Cadastre-se

Acessar NSString de outra classe


Posts Recomendados

Boa tarde,

bom tenho uma View do meu progeto que tem 3 actions para abrir um PDF em 3 Linguagens

criei uma modal com a webView que irá mostrar o PDF, e os arquivos PDF que vao abrir estao em Resources do meu progeto,

entao para nao criar 3 modalViews (uma para cada PDF), criei uma só, e declarei uma NSString que irá ser o nome do arquivo PDF,

Assim em cada action eu atribuo o nome certo de cada PDF, assim ficando mais dinamico, ja fiz isso antes, mas na mesma classe.

Meu problema é que nao consigo acessar essa NSString da modalView,

ja importei a classe da ModalView para a classe da minha viewPrincipal, mas nao tem jeito, sei que tem uma forma de acesasr essa string, pesquisei bastante mais nao consegui nada!

Link para o comentário
Compartilhar em outros sites

  • Respostas 4
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Dias Populares

Top Postadores Neste Tópico

tenho 3 actions que abrem a modal


-(IBAction)portugues{

[modalregulamento setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:modalregulamento animated:YES];

}
[/CODE]

no DidLoad da modal tenho:

[CODE]
- (void)viewDidLoad {
[super viewDidLoad];

pdfUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: linguaPDF ofType:@"pdf"]];
[webView loadRequest:[NSURLRequest requestWithURL:pdfUrl]];
}
[/CODE]

declarei a string "linguaPDF" e criei uma property

[CODE]
@property(nonatomic,retain) NSString *linguaPDF;
[/CODE]

fui na classe que abre a modal e importei a modal :

[CODE]
#import "ClasseDaModal"
[/CODE]

só que nao consigo acessar a string linguaPDF pois minha ideia seria trocar o valor dela em cada action, pois uma abriria o PDF em portugues outra em espanhol e outra em ingles.

no caso seria só setar o nome do PDF em cada action

ex:

[CODE]
-(IBAction)portugues{

[modalregulamento setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:modalregulamento animated:YES];
self.linguaPDF = @"portugues";

}
[/CODE]

Editado por sanchessd
Link para o comentário
Compartilhar em outros sites

Cara, entendi o que você quer fazer...

Vamos apelidar a classe que vai CHAMAR a classe do PDF de "ClasseHome", e a outra de "ClassePDF"

Crie a NSString na ClasseHome (declare a property direitinho e tal)

Então na ClassePDF (no viewDidLoad) faz assim (NÃO SE ESQUEÇA DE IMPORTAR A ClasseHome):


- (void)viewDidLoad {
[super viewDidLoad];
ClasseHome *classeHomeVar = [[ClasseHome alloc]init];
NSString *pathString = classeHomeVar.linguaPDF;
pdfUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:pathString ofType:@"pdf"]];
[webView loadRequest:[NSURLRequest requestWithURL:pdfUrl]];
}
[/CODE]

Pronto, resolvido!

Link para o comentário
Compartilhar em outros sites

fiz como voce me sugeriu, mas sem resultado.

vou postar aqui parte do meu codigo: a classeHome se chama SalaoDesign: segue codigo em SalaoDesign.h


#import <UIKit/UIKit.h>
#import "Regulamento.h"
@interface SalaoDesign : UIViewController {
NSString *lingua;
Regulamento *modalregulamento;
...
}
@property(nonatomic,retain) NSString *lingua;
...
[/CODE]

em SalaoDesign.m:

[CODE]
-(IBAction)portugues{

lingua = @"portugues";
[modalregulamento setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:modalregulamento animated:YES];

}
-(IBAction)espanhol{

lingua = @"espanhol";
[modalregulamento setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:modalregulamento animated:YES];


}
-(IBAction)ingles{

lingua = @"ingles";
[modalregulamento setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:modalregulamento animated:YES];

}
[/CODE]

essas 3 actions abrem os PDFs, no caso

[CODE]
lingua = @"portugues";
[/CODE]

seria o nome do PDF que seá aberto, tenho tres PDFs "portugues, espanhol e ingles" sendo esses seus respectivos nomes.

a classePDF se chama Regulmento, em Regulamento.h tenho:

[CODE]
#import <UIKit/UIKit.h>
@interface Regulamento : UIViewController {

IBOutlet UIWebView *webView;
NSURL *pdfUrl;

}
@property(nonatomic,retain) IBOutlet UIWebView *webView;
@property(nonatomic,retain) NSURL *pdfUrl;
-(IBAction)fechar:(id)sender;
@end
[/CODE]

em regulamento.m :

[CODE]
#import "Regulamento.h"
#import "SalaoDesign.h"
@implementation Regulamento
@synthesize webView;
@synthesize pdfUrl;
....
- (void)viewDidLoad {
[super viewDidLoad];
SalaoDesign *salaoDesignVar = [[SalaoDesign alloc] init];
NSString *pathLingua = [salaoDesignVar lingua];

pdfUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:pathLingua ofType:@"pdf"]];
[webView loadRequest:[NSURLRequest requestWithURL:pdfUrl]];
}
...
[/CODE]

acredito que o codigo esteja certo, seguindo o que me passou, mas parece que nao atribui valor a "lingua"

fiz um NSLog e nao imprime nenhum valor da string "lingua", parece que este metodo nao funcionou, tem algo que estou fazendo errado?

Obrigado!

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
      53,3k
    • Total de Posts
      443k
×
×
  • Criar Novo...