繁体   English   中英

当她停止在Objective-C中加载(webViewDidFinishLoad)时显示UIViewController

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM