0

ナビゲーション コントローラー内にビュー A を持つストーリーボードがあります。サブビュー B をビュー A に動的に追加します。サブビュー B にはテーブル ビューがあり、テーブル ビュー セルには詳細ビューへのシーク (プッシュ) があります。セルをクリックすると、prepareForSegue メソッドが呼び出されますが、詳細ビューは表示されません。シークをモーダルに切り替えると、サブビュー B があったビュー A 内に詳細ビューが表示されます。

私がやりたいのは、詳細ビューがナビゲーションコントローラーにプッシュされ、ユーザーが詳細ビューに戻ったときに、サブビュー B が埋め込まれた状態でビュー A に戻ることです。

以下は、サブビューを追加するために使用するコードです。

if(!self.homeViewController){
         self.homeViewController = [self.storyboardinstantiateViewControllerWithIdentifier:@"HomeView"];        
    }

    if(self.currentViewController != self.homeViewController)
    {            
        [self.view insertSubview:self.homeViewController.view belowSubview:self.tabBar];
        [self.currentViewController removeFromParentViewController];
    }

    self.currentViewController = self.homeViewController;
4

1 に答える 1

0

コード (およびストーリーボード) を確認しないと、診断が難しい場合があります。しかし、動的にロードされたコンテンツでセグエを適切に動作させるのが面倒な場合があることがわかりました。場合によっては、UINavigationController の pushViewController:animated: および popViewController:animated メソッドを使用する方が良い方法であることがわかりました。UIViewcontroller.navigationController を介して UINavigationController にアクセスできるはずです。

于 2012-09-07T05:08:55.173 に答える