2010-02-13 3 views
0

Cette fois-ci, je me demandais quand je devais mettre mes propriétés ...Quand et où les propriétés du contrôleur sont-elles censées être définies?

J'ai eu une barre de navigation que j'utilise pour pousser un nouveau contrôleur (contrôle d'un affichage Web):

NewsViewController *webViewController = [[NewsViewController alloc] init]; // I create my controller 

webViewController.urlText = @"http://www.google.fr"; // I set the property 

InfonulAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 

[delegate.newsNavController pushViewController:webViewController animated:YES]; 

[webViewController release]; 

Je ne sais pas pourquoi, mais le code ci-dessous ne fonctionne pas:

- (void)viewDidLoad { //viewDidLoad from my webViewController 

    [super viewDidLoad]; 

    //Create a URL object. 
    NSURL *url = [NSURL URLWithString:urlText]; 
    //URL Requst Object 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

    //Load the request in the UIWebView. 
    [webView loadRequest:requestObj]; 
} 

Je veux juste créer un UIWebView mais je dois donner le contrôleur l'URL à utiliser!

Une idée où et quand ma propriété urlText doit être définie?!?

Cheers,

Gauthier

Répondre

0

Utilisez-vous correctement la propriété? Comme

@property(nonatomic,retain) NSString *urlText; 

Si tel est le cas, essayez d'utiliser une méthode init personnalisée comme celle-ci;

-(id)initWithUrl:(NSString *)url 
{ 
    if(self = [super init]) 
    { 
      self.urlText = url; 

    } 
    return self; 
} 

ne pas oublier de publier urlText dans dealloc. Maintenant utilisez;

NewsViewController *webViewController = [[NewsViewController alloc] initWithUrl:@"someUrl"]; 
Questions connexes