我正在使用viewController
从A正确推送navigationController
B。但是,我希望uiwebview
viewController
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];
完成其加载而不是立即加载。我首先尝试初始化B并在加载结束时按A但没有成功,则不会查看控制器。怎么做到呢?谢谢。
来自controllerA,
viewDidLoad
然后,controllerB被初始化,webviewDidFinishLoad
被触发,当- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
AViewController *theInstance = [[AViewController alloc] init];
[theInstance pushBcontroller]; }
时,B必须立即被推或在前面被查看。
AViewController
on -(void)pushBcontroller{
[[self navigationController] pushViewController:self.controllerB animated:NO];
}
,
{{1}}
不工作......
答案 0 :(得分:0)
第AViewController *theInstance = [[AViewController alloc] init];
行创建AViewController
的新实例。由于它是 new ,因此它不是视图控制器层次结构的一部分,因此未连接到导航控制器。
为BViewController
提供前一个控制器的引用并使用它而不是创建另一个控制器。或者,或许更好的是,在加载完成时发送通知原始AViewController
用来知道何时更改显示。