0
     detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil];

    [self.splitViewController.splitViewController viewWillDisappear:YES];
    detailViewController.strDetailId = [teaserSectionOneArray objectAtIndex:indexValue] ;
    NSMutableArray *viewControllerArray = [[NSMutableArray alloc] initWithArray:[[self.splitViewController.viewControllers objectAtIndex:1] viewControllers]];
    [viewControllerArray removeAllObjects];
    [viewControllerArray addObject:detailViewController];
    [[self.splitViewController.viewControllers objectAtIndex:1] setViewControllers:viewControllerArray animated:NO];
    [self.splitViewController.splitViewController viewWillAppear:YES];
    [viewControllerArray release];

このコードは、詳細ビューへのプッシュに使用します。ボタンをクリックしたときに、詳細ビューで別のビューコントローラにポップするにはどうすればよいですか?はサポートされていません[self.navigationController popViewControllerAnimated:YES];。この問題を処理する方法は?前もって感謝します!

4

1 に答える 1

2

それは、navigationControllerのスタックにViewControllerをプッシュする方法ではありません!!

あなたは電話する必要はありませんviewWillDisappearviewWillAppearそしてそのようなあなた自身!detailViewController自分でsplitViewController.viewControllers配列にを追加する必要もありません。

あなたがする必要があるのはこれです:

  • UISplitViewControllerのNavigationController一部としてが含まれていることを確認してくださいdetailViewController(つまり、画面の右側にあるViewControllerはUINavigationController、通常ではなく、である必要がありますUIViewController)。
  • 残りは通常のと同じように機能するので簡単UINavigationControllerです。あなたUINavigationControllerがの正しい部分であるという事実は、他のコンテキストでUISplitViewControllerを使用する場合と同じです。UINavigationController

ビューコントローラをプッシュおよびポップするためのメソッドとpushViewController:animated:を使用するだけです。を指すように追加したカスタムを使用するか、にアクセスして、からにアクセスします。popViewControllerAnimated:UINavigationControllerUINavigationControllerUISplitViewControllerIBOutlet(UINavigationController*)[self.splitViewController.viewControllers objectAtIndex:1]

于 2012-09-14T12:07:27.847 に答える