0

ロード時に各ストーリーボードに追加されるUIWebViewクラスがありますが、このクラスに渡すときに親から必要なページはViewController、最初のページのファイルのみを表示し、異なるページ/viewControllerごとに同じように設定しますそれぞれに異なります。

どういうわけかこのページをキャッシュしていますか?もしそうなら、どうすれば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"]です。

これをクリアして、毎回新しいリクエストをロードすることは可能ですか?

4

1 に答える 1

1

ContentView *dispalyPageContent = [[ContentView alloc] init];それは、あなたがあなたを呼ぶときviewDidLoad、あなたはそれを次のように初期化するからです:

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

そして、初期化の瞬間のpathForResource:pageToDisplayにはいくつかのゴミがあります。

そして、あなたが呼び出すとき、あなたのクラスはすでにいくつかのゴミで開始されている[dispalyPageContent setPageToDisplay:@"smth"]ので、それは何も変わりませんContentViewPageToDisplay

(また、あなたは呼び出します[[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];
    }
于 2012-10-17T23:34:39.890 に答える