0

私はFBのような機能を実装しています

  1. 左側のデータベースからメニューのリストを作成します。
  2. いずれかのメニューをクリックすると、関連する Web ページが webview 内に読み込まれます。

メニューと Webview の両方が異なるビューコントローラーにあります

メニューがクリックされると、最初のビューコントローラーに通知メッセージを送信し、通知メッセージ内で loadRequest にコードを記述します。

ただし、これは機能していません。最初の Viewcontroller から正常に loadRequest を実行できますが、別の ViewController から実行することはできません。

ここに私のコードがあります:

ビューコントローラー 1:

ViewLoadで

NSNotificationCenter *note = [NSNotificationCenter defaultCenter];
[note addObserver:self selector:@selector(eventDidFire:) name:@"ILikeTurtlesEvent" object:nil];

    - (void) eventDidFire:(NSNotification *)note {
            web.delegate=self;
        [web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
     }

ViewController 2で:

NSNotificationCenter *note = [NSNotificationCenter defaultCenter];
[note postNotificationName:@"ILikeTurtlesEvent" object:self];
4

2 に答える 2

0

行を削除した解決策を見つけました:

web.delegate=self; コードが機能しました!! 変 !!しかし、真の 。ここに私の作業コードがあります:

- (void) eventDidFire:(NSNotification *)note {
  // web.delegate=self;
 [web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.11.77:5200/test/test.html"]]];

}

それが他の人に役立つことを願っています!!! ":)

于 2012-05-18T06:05:30.920 に答える
0

これは、あなたがやろうとしていることの別のオプションかもしれません:

viewcontroller1.h:
-(void)clickmenu:(id)sender;

viewcontroller1.m:
-(void)clickmenu:(id)sender
{
  viewcontroller2 *obj = [[viewcontroller2 alloc] initWithNibName: @"viewcontroller2" bundle: [NSBundle mainBundle]];
[obj Loadwebview:[NSURL urlwithstring:@"http://www.google.com"]];
}


ViewController2.h:
-(void)Loadwebview:(NSURL *)url;
viewcontroller2.m:
-(void)Loadwebview:(NSURL *)url
{
      web.delegate=self;
    [web loadRequest:[NSURLRequest requestWithURL:url]];
}
于 2012-05-16T07:32:44.013 に答える