0

ビューコントローラーA、B、Cがあります。ビューコントローラーAにはHTMLページを表示するためのUIWebViewがあり、UIWebViewの文字列値を強調表示します。要件として、viewcontroller B から来た場合、viewcontroller 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];
4

3 に答える 3

1

あるviewControllerから次のviewControllerにBOOLフラグを渡すだけで、問題が解決します。

AViewController で、AViewController から BViewController に切り替えるときに、次のように BOOL フラグを渡します -

BViewController *aViewController = [[BViewController alloc]init];
bViewController.passFlag = TRUE;
[self.navigationController bViewController animated:YES];

しかし、これを BViewController.h で宣言します -

@property(nonatomic)BOOL passFlag;

そしてBViewController.mで -

@synthesize passFlag;

さて、BViewController チェックで -

if(passFlag){
  // highlight text
}else{
  // remove highlighting text
}

このようにして、BViewController から CViewController に BOOL フラグを渡すことができます。

これが役に立てば幸いです。ありがとうございます。

于 2013-11-14T11:47:44.540 に答える