无法从另一个viewcontroller加载webview请求

时间:2012-05-16 06:58:09

标签: iphone ios5 xcode4.2

我正在实施FB类型的功能

  1. 从左侧的数据库填充菜单列表。
  2. 点击任意菜单会在webview中加载相关网页。
  3. Menu和Webview都在不同的viewcontroller中

    当点击菜单时,我向第一个viewcontroller和内部通知消息发送通知消息我将代码写入loadRequest。

    然而这不起作用。我能够从第一个Viewcontroller成功加载请求。但是不可能从另一个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"]]];
         }
    
    ViewController 2:

    中的

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

2 个答案:

答案 0 :(得分: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]];
}

答案 1 :(得分: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"]]];

}

希望它能帮助别人! ":)