0

ナビゲーション バーを追加して新しいビューを表示する "didSelectRowAtIndexPath" アクションがあります。新しいビューには、別のビューをナビゲーション スタックにプッシュするアクションがあり、それは機能しますが、[戻る] をクリックしても前のビューは復元されません。

シーケンスは基本的に次のとおりです。

  • ユーザーが表のセルをクリック
  • ナビゲーション バーが表示され、その下に新しいビューが表示され、リンク付きの HTML が表示されます
  • ユーザーがリンクをクリックすると、戻るボタンとともに新しいビューがナビゲーションに追加されます
  • ユーザーが戻るボタンをクリックすると、ナビゲーションは適切にロールバックされますが、ビューは変更されません

新しいビューは、次のようにリンクのクリックをキャプチャすることで追加されます:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
if(navigationType == UIWebViewNavigationTypeLinkClicked) {
    UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"webpage"];
    [flipsideNavigationBar pushNavigationItem:navigationItem animated:YES];
    [navigationItem release];

    WebViewController *viewController = [[WebViewController alloc] initWithNibName:@"webView" bundle:nil];
    UIView *webPageView = self.webViewController.view;
    [webPageView addSubview:viewController.view];
    [webPageView insertSubview:flipsideNavigationBar aboveSubview:viewController.view];
    [[viewController.view.subviews objectAtIndex:1] loadRequest:request];
    [webView stopLoading];
    return YES;
}
return YES;
}

何が間違っているのかわかりません。「戻る」ボタンで現在のビューを閉じて前のビューに戻る必要があります。誰でも試してみることを提案できますか?

ありがとう!

ジョン

4

1 に答える 1

0

これを行うための推奨される方法は、モーダルまたは非モーダルのいずれかで、単に a を使用して s をスタックにUINavigationControllerプッシュすることです。UIViewController

カスタム ソリューションに固執する場合は、 を設定し、そのまたはメソッドを実装する必要がありdelegateます。ドキュメント リンクUINavigationBarshouldPopItem:didPopItem:

于 2009-10-03T23:34:40.107 に答える