0

viewControllerを使用して A から B を適切にプッシュしてnavigationControllerいます。ただし、すぐにではなく、Bがロードを終了してuiwebviewから一度実行したいと思います。viewController最初に init 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];

次に、コントローラーBが初期化され、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];作成します。これは新しいため、View Controller 階層の一部ではないため、Navigation Controller に接続されていません。AViewController

別のコントローラーBViewControllerを作成する代わりに、以前のコントローラーへの参照を提供し、それを使用します。または、おそらくより良いのは、読み込みが完了したときに通知を送信して、オリジナルAViewControllerがいつ表示を変更するかを知るために使用することです。

于 2012-11-17T13:18:07.980 に答える