Bonjour Je travaille sur une application basée sur Web view, j'ai un WebController dans lequel j'ai une variable qui contient l'URL actuelle.Accéder à une variable dans ViewController
J'ai Code récemment ajouté à lancer une vue, cela fonctionne très bien, ce point de vue tient aussi une autre vue sur le Web, ce point de vue web fonctionne très bien si je charge un site dans ce comme celui-ci:
[[mywebview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:
[@"http://www.google.com/search?hl=en&q=" stringByAppendingString:@"test"]]]];
Cependant Je suis en train d'accéder à la variable qui contient l'URL actuelle comme ceci:
[[mywebview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:
[@"http://www.google.com/search?hl=en&q=" stringByAppendingString:currentURL]]]];
Cependant lors de cette opération en liant au WebController le CURRENTURL semble égaler rien, mais cela fonctionne parfaitement bien quand il fait du premier répondeur (sauf bien sûr la vue pas longtemps er montre)
Ma question est comment puis-je faire fonctionner ma variable currentURL quand elle est liée à partir du WebController?
Je suis relativement nouveau au cacao donc je suis désolé si c'est une question facile!
EDIT: ajout de commentaires
Dans la méthode initWithWindowController
currentURL
est réglé sur @""
, et dealloc
-nil
. Le CURRENTURL vient de l'autre vue Web voir ici:
- (void)webView:(WebView *)wv didStartProvisionalLoadForFrame:(WebFrame *)frame {
if (frame != [self.webView mainFrame])
return;
self.currentUrl = [[[[frame provisionalDataSource] request] URL] absoluteString];
[self retain];
}
Je déclare CURRENTURL dans le WebController.h
@interface WebController : NSObject <DOMEventListener>
{
IBOutlet NSString *currentURL;
}
@property (nonatomic, copy) IBOutlet NSString *currentURL;
@end
Je suis en train d'utiliser le CURRENTURL dans la WebController.m dans la fonction DisplayInView .
-(IBAction) DisplayInView:(id) sender
{
if ([siteview isInFullScreenMode])
{
[siteview exitFullScreenModeWithOptions:nil];
}
else
{
[[mywebview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: [@"google.com/search?hl=en&q="stringByAppendingString:currentURL]]]]; siteview enterFullScreenMode:[[siteview window] screen] withOptions:nil];
}
}
@synthesize siteview;
@end
Pouvez-vous indiquer où vous définissez var currentURL? – geraldWilliam
Pour répondre à cette question, nous devons savoir comment vous déclarez 'currentURL' et comment vous lui attribuez une valeur. –
Il est défini sur @ "" dans le initWithWindowController dans dealloc: currentURL = nil; Le CURRENTURL vient de l'autre point de vue web voir ici: - (void) webView: (WebView *) wv didStartProvisionalLoadForFrame: (Webframe *) cadre { si le retour; (frame = [de self.webView Mainframe]!) self.currentUrl = [[[[frame provisionalDataSource] request] URL] absoluteString]; [self retain]; } – user1887683