2012-09-14 39 views
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];。如何處理這個問題?提前致謝!如何彈出拆分視圖控制器「DetailViewController?」

+0

你想做什麼?什麼不起作用? –

+0

我正在將主視圖推至詳細視圖。詳細視圖不工作的流行動作。我想要點擊按鈕的普通流行動作,但不支持流行動作。 – Mani

回答

2

Wooooow這不是你如何推動一個導航控制器的堆棧上的視圖控制器!

您不必自己撥打viewWillDisappear,viewWillAppear等等!您不必自己將detailViewController添加到splitViewController.viewControllers陣列!

你需要做的是這樣的:

  • 確保您UISplitViewController有NavigationController作爲一部分其detailViewController(即視圖控制器是在屏幕的右邊應該是一個UINavigationController,不是正規UIViewController)。
  • 其餘部分很容易,因爲它與任何常規UINavigationController的工作方式相同。 UINavigationControllerUISplitViewController的正確部分的事實與在任何其他上下文中使用UINavigationController時沒有區別。

只需使用的UINavigationControllerpushViewController:animated:popViewControllerAnimated:方法來推動和彈出視圖控制器。使用您添加指向它的自定義IBOutlet或訪問(UINavigationController*)[self.splitViewController.viewControllers objectAtIndex:1],從UISplitViewController訪問您的UINavigationController

+0

謝謝你的幫助。我正在推動主視圖以詳細視圖。我想單擊詳細視圖中的按鈕,然後執行彈出操作。詳細視圖不支持彈出操作,因爲我不使用普通的pushViewController:animated :.所以搜索一下解決方案請給予更多的想法 – Mani

+0

將您的detailView嵌入NavigationController(其中的rootViewController將成爲您的detailView)並使用標準的push/pop方法,這是最簡單的解決方案。 – AliSoftware

相關問題