[英]Show a UIViewController when she stop loading (webViewDidFinishLoad) in Objective-C
我有一个名为ThemeView
UIViewController
子类。 当我单击1按钮时,它将启动另一个名为ViewJeuSolo
UIViewController
子类的实例并显示它。
-(IBAction) boutonJouer:(id)sender{
//Do something
ViewJeuSolo *secondViewController =
[self.storyboard instantiateViewControllerWithIdentifier:@"ViewJeuSolo"];
[self.navigationController pushViewController:secondViewController animated:YES];
}
所以这可行。 我的问题: ViewJeuSolo
有一个WebView
,我想显示一个微调ViewJeuSolo
,加载WebView
,然后执行
[self.navigationController pushViewController:secondViewController animated:YES];
我已经有一个
- (void)webViewDidFinishLoad:(UIWebView *)wva
但是我看不到如何将此功能连接到以前的视图。
摘要:我只想在新视图中的WebView加载后才切换视图。
您尝试执行的操作是不可能的-您将必须加载基于UIWebView
的视图(此处为secondViewController
),然后显示“ Please Wait”加载消息,直到调用委托webViewDidFinishLoad
。
您可以做的一件事是显示来自secondViewController
基于UIView
的加载屏幕,然后在调用委托方法后将其删除。
就像您说的- (void)webViewDidFinishLoad:(UIWebView *)wva
,您的子类ViewJeuSolo
已经有了- (void)webViewDidFinishLoad:(UIWebView *)wva
ViewJeuSolo
。 那么,为什么不只在此方法中设置BOOL
变量呢? 当完成加载后,它将来到您的这一行[self.navigationController pushViewController:secondViewController animated:YES];
。 那么在此之前,您只是这样检查吗?
- (void)webViewDidFinishLoad:(UIWebView *)wva
{
self.isloaded=YES; //declare insatance variable as bool
}
-(IBAction) boutonJouer:(id)sender{
//Do something
ViewJeuSolo *secondViewController =
[self.storyboard instantiateViewControllerWithIdentifier:@"ViewJeuSolo"];
//now check here you bool variable value
if (secondViewController.isloaded==YES)
{
[self.navigationController pushViewController:secondViewController animated:YES];
secondViewController.isloaded=NO;
}
}
对于有相同问题的人,我可以这样做:
将所有用于加载Web视图的功能置于您的第一视图中。 当需要更改视图时,将Web视图隐藏起来并显示微调器。 加载Web视图后,初始化下一个视图,并通过setwebview()函数提供该Webview。
对我来说很好吗:)。 如果您需要更高的精度,请告诉我。 谢谢大家的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.