2012-10-17 51 views
0

我有被添加到各個分鏡圖上負載UIWebView類每次返回相同的頁面,但路過的時候進入這個類的頁面我需要形成父ViewController只顯示來自文件有史以來第一頁和每個不同的頁面/ viewController它是相同的,即使我把它設置爲每個不同。iOS版:的NSURLRequest不同的故事板

難道是以某種方式緩存這個頁面,如果是這樣,我怎麼能每次都有一個乾淨的UIWebview

我UIWebView的M級文件(ContentView.m):

- (id)initWithFrame:(CGRect)frame { 
    self = [super initWithFrame:frame]; 
    if (self) { 
     NSString *urlpath = [[NSBundle mainBundle] pathForResource:pageToDisplay ofType:@"html" inDirectory:@"pageContent"]; 
      NSURL *url=[[NSURL alloc] initFileURLWithPath:urlpath]; 
      NSURLRequest *request=[NSURLRequest requestWithURL:url]; 

      [self loadRequest:request]; 
     } 
     return self; 
    } 

我父視圖使用通過被請求的​​頁面下面的變量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」];

是否可以清除它並每次加載新的請求?

回答

1

這是因爲當您在viewDidLoadContentView *dispalyPageContent = [[ContentView alloc] init];,你初始化它:

NSString *urlpath = [[NSBundle mainBundle] pathForResource:pageToDisplay ofType:@"html" inDirectory:@"pageContent"]; 

而且在pathForResource:在初始化的時刻pageToDisplay是一些垃圾。

然後,當你調用[dispalyPageContent setPageToDisplay:@"smth"],它改變不了什麼,因爲你的ContentView類已經被一些垃圾在PageToDisplay

(另外,你叫[[ContentView alloc] init];,並在你的代碼只有initWithFrame:...爲對象inited ContentView類)

您可以用這種方法解決這個問題:在您的ContentView.m 1)

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

感謝您的回覆,但我得到這個錯誤: '內容查看' 無可見@interface聲明選擇器'pageToDisp:使用以下ContentView * dispalyPageContent = [[ContentView alloc] initWithFrame:CGRectMake(10,60,300,300)pageToDisp:@「THEpg1」];謝謝 –

+0

道歉看看代碼我可能錯過了initwithframe方法結尾處的額外變量,當我重新進入並讓你知道謝謝 –

+0

非常感謝。 –