我将一个NSURL从我的pickerviewcontroller传递给我的mainviewcontroller。 url取决于pickerviewcontroller中的用户选择。它工作正常,但每次重新启动应用程序以进行选择时,用户必须重复访问pickerviewcontroller。
也许代码会更好地解释问题:这是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 = null
这是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];
}
我不知道我应该做些什么来让MainViewController记住url,直到选择器中的另一行被选中?
答案 0 :(得分:0)
如果要在重新启动应用程序后保留该值,则应将值(url)存储在文件中,因此当您重新启动它时,可以从那里读取它。
答案 1 :(得分: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);
}