содержимое веб-просмотра не обновляется - PullRequest
0 голосов
/ 30 апреля 2019

Загрузка содержимого NSString в UIWebView. а затем отредактируйте содержимое nsstring в другом представлении. как только я возвращаюсь к этому экрану, содержимое в NSString обновляется, но содержимое в UIWebView не обновляется.

- (void)viewWillAppear:(BOOL)animated{
    self.responseMessageWebView = [[UIWebView alloc] initWithFrame:self.middlecontainerScroller.frame];
        [self.middlecontainerScroller addSubview:self.responseMessageWebView];

        self.responseMessageWebView.opaque=NO;
        [self.responseMessageWebView.scrollView setShowsVerticalScrollIndicator:YES];
        self.responseMessageWebView.scrollView.delegate=self;
        self.responseMessageWebView.tintColor = [UIColor blackColor];
        self.responseMessageWebView.delegate = self;
        [self.responseMessageWebView setBackgroundColor:[UIColor clearColor]];
        self.responseMessageWebView.userInteractionEnabled = YES;
        self.responseMessageWebView.scrollView.bounces         = false;
        self.responseMessageWebView.scrollView.scrollEnabled = false;
        [self.responseMessageWebView reload];
    NSString* htmlHead=@"<!DOCTYPE html><html><head><style>\
                * {\
                word-wrap: break-word;\
                }\
                </style>\
                </head>\
                <body>";
                NSString* html=[NSString stringWithFormat:@"%@ Hello world my testing string%@",htmlHead,@"</body></html>"];
                [self.responseMessageWebView loadHTMLString:html baseURL:nil];
}
    - (void)webViewDidFinishLoad:(UIWebView *)aWebView {}

Как только я возвращаюсь назад, значение строки обновляется с Hello world my testing string до my testing string.

 - (void)viewWillAppear:(BOOL)animated{
        self.responseMessageWebView = [[UIWebView alloc] initWithFrame:self.middlecontainerScroller.frame];
            [self.middlecontainerScroller addSubview:self.responseMessageWebView];

            self.responseMessageWebView.opaque=NO;
            [self.responseMessageWebView.scrollView setShowsVerticalScrollIndicator:YES];
            self.responseMessageWebView.scrollView.delegate=self;
            self.responseMessageWebView.tintColor = [UIColor blackColor];
            self.responseMessageWebView.delegate = self;
            [self.responseMessageWebView setBackgroundColor:[UIColor clearColor]];
            self.responseMessageWebView.userInteractionEnabled = YES;
            self.responseMessageWebView.scrollView.bounces         = false;
            self.responseMessageWebView.scrollView.scrollEnabled = false;
            [self.responseMessageWebView reload];
        NSString* htmlHead=@"<!DOCTYPE html><html><head><style>\
                    * {\
                    word-wrap: break-word;\
                    }\
                    </style>\
                    </head>\
                    <body>";
                    NSString* html=[NSString stringWithFormat:@"%@my testing string%@",htmlHead,@"</body></html>"];
                    [self.responseMessageWebView loadHTMLString:html baseURL:nil];
    }
        - (void)webViewDidFinishLoad:(UIWebView *)aWebView {}

Я не могу использовать WKWebView. Есть ли способ обновить UIWebView?

1 Ответ

1 голос
/ 30 апреля 2019

Одна вещь, которая бросается в глаза, это то, что вы создаете и добавляете свое веб-представление к его суперпредставлению в viewWillAppear:, но, вероятно, никогда не очищаете его, так что вы, скорее всего, получите дубликат, если уйдете с этого экрана и возвращается.

Вы должны переместить весь код конфигурации веб-просмотра, который в настоящее время используется в методе viewWillAppear:, куда-нибудь, например, viewDidLoad. Это в основном означает все, кроме строк, в которых вы устанавливаете строку HTML и вызов loadHTMLString: в конце. Вы также не должны нуждаться в вызове reload, я не думаю, что он должен иметь какой-либо эффект.

Возможно, это решит вашу проблему, но если нет, то единственное, что не учтено, - это фактическое свойство htmlHead. Это где-то обновляется? Если нет, то проблема не в веб-просмотре, так как вы не обновляете данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...