5

我的目的是實現類似於本機iPad設置應用程序的東西。設置使用UITableViewController,因此,詳細視圖可以深入到子視圖,但是我希望能夠通過按鈕點擊在我的詳細視圖中推送視圖控制器。如何在蘋果示例MultipleDetailViews的詳細視圖中推送視圖控制器?

所以我試圖擴大MultipleDetailViews示例應用程序:
1)SecondDetailViewController具有財產navigationController(這是隻讀)設置爲nil ...
2)所以我創建了一個新的UINavigationController並用它推我的控制器,但沒有奏效。

我的代碼:

if (!self.myNavigationController) { 
    self.myNavigationController = [[UINavigationController alloc] initWithRootViewController:self]; 
} 

FirstDetailViewController *controller = [[FirstDetailViewController alloc] initWithNibName:@"FirstDetailView" bundle:nil]; 

[[self myNavigationController] pushViewController:controller animated:YES]; 

[controller release], controller = nil; 

也試過在UINavigationController只是init方法,但並沒有正常工作。

我想嘗試一些不可能實現自定義UISplitViewController?我誤導了SecondDetailViewControllerUINavigationBar的示例代碼嗎?

回答

0

爲了做到這一點,你必須將viewController放到數組中的每個viewController上。像這樣:

[[self.appDelegate.splitViewController.viewControllers objectAtIndex:0] pushViewController:rootLevel1 animated:YES]; 
[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] pushViewController:detailLevel1 animated:YES]; 

信貸和代碼: http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/

+0

鏈接似乎已經死了 - 你有另一個參考? – matm 2011-05-31 19:16:11

+0

[鏈接](http://kshitizghimire.com.np/uisplitviewcontroller-push-viewcontroller-in-master-and-detail/)試試這個。他的網站是在前一天完成的。 – DogEatDog 2011-06-02 05:03:47

0

我正在尋找解決類似的問題。在我的情況下,我希望tableview根據選擇鏈接到多個detailviews。我可以將數據覆蓋在一個視圖控制器上,但正在尋求更好的解決方案。這是我做的。它的簡單和更好,然後我發現迄今爲止一些複雜和過時的選項。

我只是在身份檢查器,我想表示的DetailView(「第二」)了視圖 - 控制了一個故事板ID和在didSelectRowAtIndexPath方法我乾脆說:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"]; 

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 

    } 

因此,當有人按下電池在主視圖中,詳細視圖被推送。

一個簡單的if語句可以切換顯示該視圖:

if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"Second Choice"]) { 
     TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"]; 

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 

    else if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"First Choice"]) { 
     TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"first"]; 

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 

    }; 

你可以簡單地使用按鈕,開關或其他任何東西,而不是表視圖,但問題是,在增加一個「故事板ID」 「標識檢查」

並簡單地通過參考「故事板ID」,然後在索引1(詳細側)按向拆分視圖控制器實例視圖控制器其簡單和快速

TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"]; 

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];