Je sais que c'est un problème si simple, mais j'ai eu du mal avec ça et ça ne marchera pas. J'essaye d'obtenir un UITableView pour ouvrir une URL quand une rangée spécifique est choisie. En utilisant NSLog, je peux voir que la variable urlSelected est correctement définie et transmise au UrlViewController correctement, mais elle n'affiche tout simplement pas le webview. Il affiche uniquement un menu de navigation avec un écran noir. Si j'ajoute une relation push entre les deux contrôleurs de vue, le ViewController se charge correctement mais il a du mal à transmettre la variable urlSelected à UrlViewController. Quelle est la bonne façon de passer cette variable, ou ai-je besoin d'établir une relation différente entre les deux ViewControllers? Voici ce que j'ai actuellement:UIWebView pas de chargement
RootViewController.m:
#import "RootViewController.h"
#import "UrlViewController.h"
..........
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UrlViewController *webController = [[UrlViewController alloc] init];
if(indexPath.row == 0){
webController.urlAddress = @"http://www.yahoo.com";
NSLog(@"urlAddress being passed is:%@", webController.urlAddress);
[self.navigationController pushViewController:webController animated:YES];
}else if(indexPath.row == 1){
webController.urlAddress = @"http://www.google.com";
NSLog(@"urlAddress being passed is:%@", webController.urlAddress);
[self.navigationController pushViewController:webController animated:YES];
}else{
webController.urlAddress = @"http://www.abc.com";
NSLog(@"urlAddress being passed is:%@", webController.urlAddress);
[self.navigationController pushViewController:webController animated:YES];
}
}
UrlViewController.h:
@interface UrlViewController : UIViewController{
NSString *urlAddress;
}
@property (strong) IBOutlet UIWebView *webView;
@property (nonatomic, retain) NSString *urlAddress;
UrlViewController.m:
@implementation UrlViewController
@synthesize webView;
@synthesize urlAddress;
...........
- (void)viewWillAppear:(BOOL)animated {
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
NSLog(@"The value being receieved is:%@", urlAddress);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
Je reçois la sortie suivante de les NSLogs:
2012-03-28 09:53:30.266 BeloitTurner[4278:f803] urlAddress being passed is:http://www.yahoo.com
2012-03-28 09:53:30.269 BeloitTurner[4278:f803] The value being receieved is:http://www.yahoo.com
Toute aide est très appréciée.
J'ai répondu à cette question [ici] (http://stackoverflow.com/questions/8791517/pass-a-uiwebview-request-using-prepareforsegue/13723765#13723765)! C'est calme la même question. – Ashoor