Ios 按按钮更改UIWebView中的文本。(简单吗?)

Ios 按按钮更改UIWebView中的文本。(简单吗?),ios,uiwebview,uibutton,Ios,Uiwebview,Uibutton,如何通过按下按钮来更改WebView中的文本 我有一个用HTML填充的Web视图 if ([buttonState isEqualToString:@"YES"]) { UIFont *webFont = [UIFont fontWithName:@"Helvetica" size:12]; NSString *mainTextString; mainTextString = @"<p><b>General:</b>THIS IS TE

如何通过按下按钮来更改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,但仍然没有成功。有人能给我指出正确的方向吗


非常感谢您的帮助

调用
[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];
}

由于您使用的是字符串标志
按钮state
,请确保将初始值设置为
@“NO”
,或者最好使用一个
BOOL
标志,该标志最初将保存值
NO
。当然要重新加载网络视图。嗨,Hejazi,谢谢你的评论。buttonState的初始值为@“是”。很抱歉,我在我原来的帖子中没有说得更清楚,我现在将对其进行修改:当我单击按钮时,web视图将变为空白(第一个文本消失,第二个文本不出现)。我正在按钮中重新加载webview,但仍然没有加载任何内容。如有更多建议/帮助,将不胜感激!通过重新加载webview,我的意思是再次执行上面的第一个代码。调用
[mainText reload]
只会加载一个空页面。这正是我的问题所在!第一段代码在viewdidload中,a)如何再次调用它?b) 我猜调用viewdidload会导致整个页面重新加载吗?谢谢你帮了一个业余的Hejazi!只需将代码移动到一个新方法(例如,
reloadwebage
),并在
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];
}