是否有可能恢复你最后在UIwebView Xcode 5中的位置

时间:2014-02-09 14:21:43

标签: ios ios7 webview xcode5

您好我正在构建一个应用程序,其中我有多个不同网站的webView。我的问题是,如果你可以点击一个视图并在其上冲浪并切换到另一个视图并返回到第一个视图恢复到原来的位置,而不是因为重新加载视图而不必重新开始?我现在的问题有点混乱,但如果你能帮忙那就太棒了!即时通讯使用常规UIvewView

NSURL *url = [NSURL URLWithString:@"https://www.mywebsite.com"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestURL];

2 个答案:

答案 0 :(得分:1)

好的,你可以保存你去过的最后一个网址并重新加载该页面吗?我认为你可以用NSUserDefaults做到这一点。

答案 1 :(得分:1)

如果您只是想在视图之间保存页面地址,则无需使用NSUserDefaults或状态恢复。 (如果您希望在应用程序使用之间保存数据,那么是的,您可以使用NSUserDefaults存储URL字符串。)

要将值存储在您的app delegate中以进行全局访问,请在您的app delegate的.h中声明该变量:

@property (nonatomic) NSUrl *currentUrl;

要访问类中的变量,请在.m:

中创建app delegate的实例
#import "ViewController.h"
#import "AppDelegate.h"

@interface ViewController ()

@end

@implementation ViewController

AppDelegate *mainDelegate;

- (void)viewDidLoad
{
    mainDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;

然后而不是使用:

NSURL *url = [NSURL URLWithString:@"https://www.mywebsite.com"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestURL];

最初在currentUrl开启之前设置webView值:

mainDelegate.currentUrl = [NSURL URLWithString:@"https://www.mywebsite.com"];

并在每个webView打开之前,将NSUrlRequest初始化为:

NSURLRequest *requestURL = [NSURLRequest requestWithURL:mainDelegate.currentUrl]; 

最后,要在结束时存储每个webView的当前地址,请使用:

mainDelegate.currentUrl = webView.request.URL;