当计时器用完iOS Xcode时,我无法将新URL加载到另一个类的UIWebView中

时间:2013-02-26 12:18:48

标签: ios xcode uiwebview loading

我有一个类LiveView,我在其中声明了一个UIWebView myWebView。当我在同一个班级时,它加载得很好,只需点击一个按钮,我就可以将URL更改为另一个,没问题。 我有另一个名为LoopCam的类,在文本字段中,用户可以输入一些秒,之后URL应该更改为另一个。 我已经正确地创建了循环,因此在X秒之后应该加载不同的URL。我已经使用了NSLog并且它正常工作,所以在X秒后,NSLog会正确地将新URL打印到控制台但是如果使用: [_liveView.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com"]]];为了加载新网址(example.com),它不会加载。

我确实在LoopCam类中创建了一个类的实例,如下所示:LiveView * _liveView;并导入了标题#import "LiveView.h",我在LoopCam.m中合成了它,如下所示:{{1 }} 有没有办法从另一个类加载UIWebView中的新URL,而无需按下按钮? PS。即使按下按钮,新URL也不会加载。 感谢

1 个答案:

答案 0 :(得分:1)

“我确实在LoopCam类中创建了一个类的实例,如下所示:LiveView * _liveView;”

这不会创建实例,这只会创建指向一个实例的属性。您需要获得对已有的LiveView实例的引用。你如何做到这一点取决于你如何从LiveView到LoopCam。例如,如果您通过推送从LiveView进入LoopCam,那么您应该在执行推送之前将属性_liveView设置为self。使用push segue,您可以实现prepareForSegue:sender:像这样:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
   if ([segue.identifier isEqualToString:@"GoToLoop"]){
       LoopCam *loopCam = (LoopCam *)segue.destinationViewController;
       loopCam._liveView = self;
    }
}

你需要在IB中设置segue的标识符(我在这里称之为GoToLoop)。