Когда и где должны быть установлены свойства контроллера? - PullRequest
0 голосов
/ 13 февраля 2010

На этот раз мне было интересно, когда я должен был установить свои свойства ...

У меня есть панель навигации, которую я использую, чтобы выдвинуть новый контроллер (управление веб-представлением):

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];

Я не знаю почему, но код ниже не работает:

- (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];
}

Я просто хочу создать UIWebView, но мне нужно дать контроллеру URL для использования!

Есть идеи, где и когда нужно установить мое свойство urlText?!?

Приветствия,

Готье

1 Ответ

0 голосов
/ 14 февраля 2010

Правильно ли вы используете собственность? Нравится

@property(nonatomic,retain) NSString *urlText;

Если это так, попробуйте использовать пользовательский метод инициализации, подобный этому;

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

     }
     return self;
}

не забудьте опубликовать urlText в dealloc. Теперь используйте;

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