ビューコントローラA、B、Cがあります。HTMLページを表示するためのUIWebViewを備えたビューコントローラAがあり、UIWebViewで文字列値を強調表示します。要件として、ビューコントローラーBからアクセスする場合、ビューコントローラーAはUIWebViewに強調表示テキストを表示する必要があります。ビューコントローラCから来る場合、ビューコントローラAは強調表示テキストを表示する必要はありません。しかし、ビューコントローラーBとCから来ると、ビューコントローラーAはハイライトテキストを表示します。ビューコントローラCからの送信中にUIWebViewのハイライトテキストを非表示にする方法。それは可能ですか?ビューコントローラーBまたはCから来ていることを知る方法は?それが見つかった場合は、おそらく解決策があります
ビューコントローラA:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
wbCont = [[UIWebView alloc] initWithFrame:CGRectMake(0, 45, 320, 568)];
[wbCont loadHTMLString:webString baseURL:nil];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *savedValue = [prefs stringForKey:@"got"];
if (self.displayHighlightedText) {
if(savedValue){
[self highlightAllOccurencesOfString1:savedValue];
}
}
[self.view addSubview:wbcont];
ビューコントローラーB:
viewcontroller B *det = [[viewcontroller B alloc] init];
NSString *decodeString = [self htmlEntityDecode:content];
[content release];
det.webString = decodeString;
[self.navigationController pushViewController:det animated:YES];
ビューコントローラーC:
viewcontroller c *det = [[viewcontroller C alloc] init];
NSString *decodeString = [self htmlEntityDecode:content];
[content release];
det.webString = decodeString;
[self.navigationController pushViewController:det animated:NO];
ハイライトされたテキストを表示するかどうかを指示するViewControllerのBOOL
プロパティを定義できますA
。ビューコントローラA
インターフェイスの.hファイルに以下を追加します。
@property (nonatomic) BOOL displayHighlightedText;
A
ビューコントローラをプッシュ/モーダルするときは、プロパティを必要な値にC
設定します(つまり、ビューコントローラからfalseに設定し、からにB
設定しますtrue
)
viewDidLoad
ビューコントローラのメソッドでこのプロパティを使用しますA
。
if (self.displayHighlightedText) {
[self highlightAllOccurencesOfString1:savedValue];
}
ビューコントローラ用に編集したコードで、ビューコントローラをC
プッシュする前に追加しdet
ます。
det.displayHighlightedText = NO;
ビューコントローラ用に編集したコードで、ビューコントローラをB
プッシュする前に追加しdet
ます。
det.displayHighlightedText = YES;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加