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.

Acessar NSString de outra classe

Featured Replies

Postado

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!

  • Respostas 4
  • Visualizações 652
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

Poste a parte do código q está trabalhando pra podermos ajudar melhor..

Postado
  • Autor

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

Postado

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!

Postado
  • Autor

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!

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.