2013-04-11 2 views
0

Я передаю NSURL из моего контролера pickerview к моему mainviewcontroller. URL-адрес зависит от выбора пользователя в контроллере pickerviewcontroller. Он отлично работает, но пользователь должен периодически переходить к контроллеру pickerview при каждом перезапуске приложения, чтобы сделать выбор.Передача NSURL и его хранение

Может быть, код будет объяснить проблему лучше: Это pickerviewcontrollers соответствующие части ...

//The save button on the pickerviewcontroller 
- (IBAction)selectedRow:(id)sender { 

MainViewController *vc1 = [self.storyboard 
instantiateViewControllerWithIdentifier:@"webview"]; 
vc1.destinationweb = selectedRow; 
[self presentViewController:vc1 animated:YES completion:nil]; 

Однажды в MainViewController журнал destinationweb показывает адрес выбора пользователя в pickerview. Но если отключить приложение или идти вперед в приложение (у меня есть другой контроллер представления), а затем обратно в MainViewController - это показывает destinationweb = нуль

Это является MainViewController соответствующие части:

- (void)viewDidLoad { 

{ 
    //webView.hidden = YES; 
    self.webView.delegate = self; 
    NSURL *url = destinationweb; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:request]; 
    NSLog(@"destinationweb shows= %@", destinationweb); 
} 
[super viewDidLoad]; 
} 

I не знаю, что я должен сделать, чтобы MainViewController помнил URL-адрес, пока не выбрана другая строка в режиме выбора?

+0

Сохранения URL в пользовательских дефолтах – DharaParekh

ответ

0

Просто сохраните строку URL-адрес в пользовательских дефолтах и ​​получить строку URL-адреса в виде контроллере

- (IBAction)selectedRow:(id)sender 
{ 
    MainViewController *vc1 = [self.storyboard 
    instantiateViewControllerWithIdentifier:@"webview"]; 
    //Instead of passing it just save the url string in user defaults 
    NSString *urlString = [selectedRow absoluteString]; 
    [[NSUserDefaults standardUserDefaults] setObject:urlString forKey:@"UserURL"]; 
    //vc1.destinationweb = selectedRow; 
    [self presentViewController:vc1 animated:YES completion:nil]; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    //webView.hidden = YES; 
    self.webView.delegate = self; 
    NSString *urlString = [[NSUserDefaults standardUserDefaults] stringForKey:@"UserURL"]; 
    NSURL *url = [NSURL URLWithString:urlString ]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:request]; 
    NSLog(@"destinationweb shows= %@", destinationweb); 
} 
+0

Идеальных! Это работало как шарм! Большое спасибо! – Pierre

0

Если вы хотите сохранить значение после перезагрузки приложения, вы должны сохранить значение (url) в файле, поэтому при его перезагрузке вы можете прочитать его оттуда.

Смежные вопросы