Objective c 在uiwebview完成其加载后推送ViewController
我正在使用Objective c 在uiwebview完成其加载后推送ViewController,objective-c,ios,xcode,cocoa-touch,Objective C,Ios,Xcode,Cocoa Touch,我正在使用navigationController从A正确按下viewControllerB。但是,我想在uiwebviewfromviewControllerB完成加载后立即执行此操作。我首先尝试初始化B,在加载结束时推A,但没有成功,控制器没有被查看。怎样才能做到呢?多谢各位 来自controllerA self.controllerB = [[BViewController alloc] initWithNibName:@"BViewController" bundle:nil anUse
navigationController
从A正确按下viewController
B。但是,我想在uiwebview
fromviewController
B完成加载后立即执行此操作。我首先尝试初始化B,在加载结束时推A,但没有成功,控制器没有被查看。怎样才能做到呢?多谢各位
来自controllerA
self.controllerB = [[BViewController alloc] initWithNibName:@"BViewController" bundle:nil anUser:self.idUser aLang:self.lang];
//[[self navigationController] pushViewController:controllerB animated:NO]; working if pushed directly here
[self.controllerB view];
然后,controllerB被初始化,viewDidLoad
被触发,当webviewDidFinishLoad
时,B必须立即按下或在前面查看
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
AViewController *theInstance = [[AViewController alloc] init];
[theInstance pushBcontroller]; }
在AViewController
上
-(void)pushBcontroller{
[[self navigationController] pushViewController:self.controllerB animated:NO];
}
不工作…行
AViewController*instance=[[AViewController alloc]init]代码>创建AViewController
的新实例。由于它是新的,因此它不是视图控制器层次结构的一部分,因此未连接到导航控制器
为您的BViewController
提供对上一个控制器的引用,并使用该引用,而不是创建另一个控制器。或者,最好在加载完成时发送一个通知,原始的AViewController
使用该通知来知道何时更改显示。AVController是否嵌入在导航控制器中?检查pushBcontroller方法中的[self-navigationController]是否为零。同时检查并确保web视图在nib中将其委托正确设置为BViewController
,否则将永远不会调用webViewDidFinishLoad
。@xNo,webviewDidFinishLoad正确触发,然后调用PushB控制器函数。然后,什么也没发生。@rdelmar,就是这样,导航控制器为零!为什么?有什么建议吗?感谢您的评论。如果不了解更多关于应用程序结构的信息,很难说——不清楚AViewController是什么,以及它在方案中的位置。你的网络视图在哪里?我给了BViewController一个参考,现在navigationController正确地设置了应该在什么时候推b。谢谢但是,什么也没发生,B没有被推。。。