0

我正在正确地viewController从 A 推 B 使用navigationController. 但是,我想uiwebviewviewControllerB 完成加载一次,而不是立即执行。我首先尝试初始化 B 并在加载结束时推送 A 但没有成功,控制器没有被查看。如何做呢?谢谢你。

从控制器A,

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];

}

不工作...

4

1 回答 1

0

该行AViewController *theInstance = [[AViewController alloc] init];创建了 a 的实例AViewController。由于它是的,它不是视图控制器层次结构的一部分,因此没有连接到导航控制器。

提供BViewController对前一个控制器的引用并使用它而不是创建不同的控制器。或者,也许更好的是,在加载完成时发送一个通知,以便原始AViewController用户知道何时更改显示。

于 2012-11-17T13:18:07.980 回答