0

我正在实现 FB 类型的功能

  1. 从左侧的数据库中填充菜单列表。
  2. 单击任何菜单会在 webview 中加载相关网页。

Menu 和 Webview 都在不同的视图控制器中

单击菜单时,我向第一个视图控制器发送通知消息,并在通知消息中编写代码到 loadRequest。

但是,这是行不通的。我能够从第一个 Viewcontroller 成功加载请求。但是不可能从另一个 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"]]];
     }

视图控制器 2 中:

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

2 回答 2

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 回答
0

我找到了我删除该行的解决方案:

web.delegate=自己;和代码工作!奇怪的 !!但是是真的 。这是我的工作代码:

- (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 回答