0

UIViewControllerから派生したクラスには、helpViewと呼ばれるUIWebView*型のクラス変数があります。そして、viewDidLoadには次のコードを使用します。

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *helpFileURL=[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/tutorial.html",
                                               [[NSBundle mainBundle] resourcePath]]];
    NSURLRequest *request = [NSURLRequest requestWithURL:helpFileURL];
    [helpView loadRequest:request];
}

正常に動作しているので、シミュレーターとデバイスに「tutorial.html」が表示されます。

これが私の質問です。tutorial.cssというCSSファイルをtutorial.htmlと一緒に使用したいと思います。tutorial.htmlがアプリバンドルに含まれているのと同じように、tutorial.cssもアプリバンドルに含まれています。

これを機能させるには、上記のコードをどのように変更する必要がありますか?私は自分でいくつかのことを試みましたが、失敗しました。そして、私はウェブを見て明確な答えを見つけることができませんでした。明らかに、私がいつものことを使うなら:

  <link href="css/tutorial.css" rel="stylesheet" type="text/css" />

私のtutorial.htmlファイルではそれだけでは不十分です。

情報をありがとう。

4

1 に答える 1

2

cssディレクトリを除外すると、バンドルはそのようには機能しません。

<link href="tutorial.css" rel="stylesheet" type="text/css" />

次に、コードを変更して、適切なベースURLを使用してhtmlをロードします。

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"tutorial" ofType:@"html"];
    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

    NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];

    [webView loadHTMLString:htmlString baseURL:baseURL];
}
于 2012-09-03T08:10:13.787 に答える