0

ボタンを押すだけで WebView のテキストを変更するにはどうすればよいですか?

HTML が入力された Web ビューがあります。

if ([buttonState isEqualToString:@"YES"]) {
    UIFont *webFont = [UIFont fontWithName:@"Helvetica" size:12];
    NSString *mainTextString;
    mainTextString = @"<p><b>General:</b>THIS IS TEXT1</p>";
    mainTextString = [NSString stringWithFormat:@"<span style=\"font-family: %@; font-size: %i\">%@</span>", webFont.fontName, (int) webFont.pointSize, mainTextString];
    [mainText loadHTMLString:mainTextString baseURL:nil];
}
else if ([buttonState isEqualToString:@"NO"]) {
    UIFont *webFont = [UIFont fontWithName:@"Helvetica" size:12];
    NSString *mainTextString;
    mainTextString = @"<p><b>General:</b>THIS IS TEXT2</p>";
    mainTextString = [NSString stringWithFormat:@"<span style=\"font-family: %@; font-size: %i\">%@</span>", webFont.fontName, (int) webFont.pointSize, mainTextString];
    [mainText loadHTMLString:mainTextString baseURL:nil];
}

また、Webview のテキストを変更したい UIButton もあります。

- (IBAction)textChangeButton:(id)sender {
    if ([buttonState isEqualToString: @"NO"]) {
        buttonState = @"YES";
    }
    else if ([buttonState isEqualToString:@"YES"]) {
        buttonState = @"NO";
    }
    [mainText reload];
}

残念ながら、ボタンを押しても 2 番目のテキストが表示されません。

プログラミングにかなり慣れていないので、何が問題なのかわかりません。ボタンを押してWebビューをリロードしようとしましたが、まだ運がありません。誰かが私を正しい方向に向けることができますか?

どんな助けでも大歓迎です!

4

1 に答える 1

1

呼び出す[mainText reload]と、空のページが読み込まれます。WebView が正しいコンテンツをロードするには、最初のコードを再度実行する必要があります。

viewDidLoadコードを新しいメソッドに移動して呼び出してみてください。textChangeButton:

- (void)reloadWebPage {
    if ([buttonState isEqualToString:@"YES"]) {
        mainTextString = (...);
        [mainText loadHTMLString:mainTextString baseURL:nil];
    }
    else if ([buttonState isEqualToString:@"NO"]) {
        mainTextString = (...);
        [mainText loadHTMLString:mainTextString baseURL:nil];
    }
}

- (void)viewDidLoad {
    [self reloadWebPage];
}

- (IBAction)textChangeButton:(id)sender {
    if ([buttonState isEqualToString: @"NO"]) {
        buttonState = @"YES";
    }
    else if ([buttonState isEqualToString:@"YES"]) {
        buttonState = @"NO";
    }

    [self reloadWebPage];
}
于 2013-10-13T21:30:09.833 に答える