I';当计时器用完iOS Xcode时,我无法从另一个类将新URL加载到UIWebView中
我有一个类I';当计时器用完iOS Xcode时,我无法从另一个类将新URL加载到UIWebView中,ios,xcode,uiwebview,loading,Ios,Xcode,Uiwebview,Loading,我有一个类LiveView,其中我声明了一个UIWebViewmyWebView。当我在同一个班级时,它可以正常加载,只需点击一个按钮,我就可以将URL更改为另一个,没问题。 我有另一个名为LoopCam的类,在这个类中,用户可以在文本字段中输入秒数,然后URL应该更改为另一个。 我已经正确地创建了循环,因此在X秒之后应该加载不同的URL。我已经使用了NSLog,它工作正常,因此在X秒后,NSLog会将新URL正确打印到控制台,但如果使用: [\u liveView.myWebView load
LiveView
,其中我声明了一个UIWebViewmyWebView
。当我在同一个班级时,它可以正常加载,只需点击一个按钮,我就可以将URL更改为另一个,没问题。
我有另一个名为LoopCam
的类,在这个类中,用户可以在文本字段中输入秒数,然后URL应该更改为另一个。
我已经正确地创建了循环,因此在X秒之后应该加载不同的URL。我已经使用了NSLog,它工作正常,因此在X秒后,NSLog会将新URL正确打印到控制台,但如果使用:
[\u liveView.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@”“]]
为了加载新的URL(example.com),它不会加载
我确实在LoopCam类中创建了一个类的实例,如下所示:
LiveView*\u LiveView
并导入了标题#import“LiveView.h”
,我在LoopCam.m
中合成了它,就像这样:@synthesis LiveView=\u LiveView代码>
有没有一种方法可以在UIWebView中从另一个类加载新的URL而不必按下按钮?
注:即使按下一个按钮,新的URL也不会加载。
谢谢“我确实在LoopCam类中创建了一个类的实例,如下所示:LiveView*\u LiveView;”
这不会创建实例,而是创建指向实例的属性。您需要获取对已拥有的LiveView实例的引用。你如何做到这一点取决于你是如何从LiveView到LoopCam的。例如,如果您通过推送从LiveView访问LoopCam,那么在进行推送之前,您会将属性_LiveView设置为self。使用推送序列,您将实现prepareForSegue:sender:如下:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"GoToLoop"]){
LoopCam *loopCam = (LoopCam *)segue.destinationViewController;
loopCam._liveView = self;
}
}
您需要在IB中设置segue的标识符(我在这里称之为gotolop)。是否正确地合成了myWebView
等?DoNSLog(@“%@”,_liveView.myWebView)代码>每次有新的url出现时尝试分配webview,然后分配webview。当我这样做时:NSLog(@“%@,_liveView.myWebView)代码>在ViewDidLoad中,在LoopCam中,我得到一个(空)响应@JV360,然后检查您是否正在初始化\u liveView.myWebView
某个地方,检查它是否未被合成,或者是否使用了正确的变量,并检查\u liveView
是否也正确初始化,即执行NSLog(%@,\u liveView)代码>我正在从LiveView到LoopCam,就像你说的那样。那么,我该如何将属性设置为self?@Dashony,您是如何使用pushViewController:animated:在代码中使用segue?使用segue。有一系列视图控制器,前4个在LiveView类下,第五个是LoopCam。转换是通过一个按钮来完成的,如按顺序。不仅仅是故事板中的代码@Rdelmary我想你上面的代码应该在LoopCam类中。对的在LoopCam类中,Xcode建议更改LoopCam;至loopCam.liveView=self;如果我这样做,它会突出显示“self”,并给出黄色错误“不兼容的指针类型从LoopCam*const_strong分配给LiveView*”@Dashony,不会在LiveView中出现。无论赛格来自哪个控制器。