Objective c iOS:NSURLRequest每次在不同的故事板上返回相同的页面
我有一个Objective c iOS:NSURLRequest每次在不同的故事板上返回相同的页面,objective-c,uiwebview,ios6,xcode4.5,Objective C,Uiwebview,Ios6,Xcode4.5,我有一个UIWebView类,该类在加载时添加到每个情节提要中,但是当将我需要的来自父级ViewController的页面传递到该类时,它只显示第一个页面中的文件,并且在每个不同的页面/ViewController上它是相同的,尽管我在每个页面上设置的页面不同 它是否以某种方式缓存此页面?如果是这样,我如何每次都拥有一个干净的UIWebview 我的UIwebview类m文件(ContentView.m): 我的父视图使用以下变量pageToDisplay传递请求的页面: 父视图m文件: #
UIWebView
类,该类在加载时添加到每个情节提要中,但是当将我需要的来自父级ViewController
的页面传递到该类时,它只显示第一个页面中的文件,并且在每个不同的页面/ViewController上它是相同的,尽管我在每个页面上设置的页面不同
它是否以某种方式缓存此页面?如果是这样,我如何每次都拥有一个干净的UIWebview
我的UIwebview类m文件(ContentView.m):
我的父视图使用以下变量pageToDisplay
传递请求的页面:
父视图m文件:
#import "ContentView.h"
- (void)viewDidLoad {
ContentView *dispalyPageContent = [[ContentView alloc] init];
[dispalyPageContent setPageToDisplay:@"THEpg1"];
[self.view addSubview:dispalyPageContent];
//--
[super viewDidLoad];
}
对于其他父视图,代码相同,但[displayPageContent setPageToDisplay:@“THEpg1”]代码>应该更改我想要的页面,例如,下一个视图将是[displayPageContent setPageToDisplay:@“THEpg2]”
是否可以清除此项并每次加载新请求?这是因为当您调用ContentView*dispalyPageContent=[[ContentView alloc]init]
在您的视图didload
中,您可以使用以下命令初始化它:
NSString *urlpath = [[NSBundle mainBundle] pathForResource:pageToDisplay ofType:@"html" inDirectory:@"pageContent"];
在pathForResource:pageToDisplay中,初始化时显示的是一些垃圾
然后,当您调用[dispalypage内容setPageToDisplay:@“smth”]
时,它不会改变任何内容,因为您的类ContentView
已在PageToDisplay
中使用一些垃圾初始化
(另外,您可以调用[[ContentView alloc]init];
并且在您的代码中只有initWithFrame:…
用于ContentView
类的对象)
您可以通过以下方式解决此问题:
1) 在您的ContentView.m中
- (id)initWithFrame:(CGRect)frame pageToDisp:(NSString *)pageToDisp {
self = [super initWithFrame:frame];
if (self) {
NSString *urlpath = [[NSBundle mainBundle] pathForResource:pageToDisp ofType:@"html" inDirectory:@"pageContent"];
NSURL *url=[[NSURL alloc] initFileURLWithPath:urlpath];
NSURLRequest *request=[NSURLRequest requestWithURL:url];
[self loadRequest:request];
}
return self;
}
2) 在您的ContentView.h中:
- (id)initWithFrame:(CGRect)frame pageToDisp:(NSString *)pageToDisp
3) 然后,在viewDidLoad中:
- (void)viewDidLoad {
ContentView *dispalyPageContent = [[ContentView alloc] initWithFrame:someFrame pageToDisp:@"THEpg1"];
[self.view addSubview:dispalyPageContent];
//--
[super viewDidLoad];
}
感谢您的回复,但我收到了以下错误:“ContentView”没有可见的@interface声明选择器“pageToDisp:使用以下ContentView*dispalyPageContent=[[ContentView alloc]initWithFrame:CGRectMake(10,60,300,300)pageToDisp:@“THEpg1]”;thanksApologise在查看代码时,我可能错过了initwithframe方法末尾的额外变量,当我返回时将重试,并让您知道谢谢
- (void)viewDidLoad {
ContentView *dispalyPageContent = [[ContentView alloc] initWithFrame:someFrame pageToDisp:@"THEpg1"];
[self.view addSubview:dispalyPageContent];
//--
[super viewDidLoad];
}