0

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

我确实在 LoopCam 类中创建了一个类的实例,如下所示:LiveView * _liveView;并导入了标头#import "LiveView.h",我已经将其合成LoopCam.m如下:@synthesize liveView = _liveView; 有没有一种方法可以在 UIWebView 中从另一个类加载新 URL 而无需按下按钮? PS。即使按下按钮,新的 URL 也不会加载。谢谢

4

1 回答 1

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)。

于 2013-02-26T15:32:05.600 回答