2010-04-13 35 views

回答

10

不幸的是,這是一個沒有記錄的方法(即私人API)。

[splitViewController setHidesMasterViewInPortrait:NO]; 

我想你需要創建一個包含表視圖(如主控制器)的自定義視圖控制器和其他通用的子視圖(如詳細控制器)來模擬這一點。

+0

無證或私有​​API?這是與蘋果打交道時的一個重要問題;-) – 2010-04-13 18:03:09

+1

@paull:未記錄==私人。 – kennytm 2010-04-13 18:22:52

+3

雖然,請記住:有時蘋果「無證」選項是因爲他們想成爲唯一使用該效果的人。在那種情況下,他們多次拋棄只是模擬私人API變化的應用。在「更多」標籤欄控制器的「編輯」功能「過於接近外觀和感覺」時,我遇到過這種情況。他們限制你可以安排到16的圖標。我試圖實現看起來像它的東西...他們拒絕了我說,如果我的功能與他們的功能接近但不一樣(即:我的功能更多,允許超過16個),可能會讓用戶感到困惑。 – Jann 2010-04-14 17:37:52

4

有人在我們的博客上問我同樣的問題,我找到了解決方案。你可以在我的博客文章末尾找到它Your first split view controller | Seaside

通常,您只需要創建UISplitViewController的子類並覆蓋方法willAnimateRotationToInterfaceOrientation: duration:,並在界面方向將更改爲縱向模式時調整主視圖和詳細視圖。

乾杯, 安德烈亞斯

+0

嗨安卡,我已經看到你的例子源代碼多個詳細視圖,但你沒有在根視圖中實現didselect方法...你可以給我一個樣本也是.. – 2010-09-24 18:36:36

+0

嗨,我添加了一些示例代碼項目MasterDetail。在http://github.com/anka/bw_examples/tree/master//MasterDetail/檢出git存儲庫。乾杯,安德烈亞斯 – anka 2010-10-04 10:43:14

+0

似乎很有希望,好主意BTW。 – bentford 2011-01-25 13:53:30

8

得到你想要的可能是隻沒有使用UISplitView效果的最簡單方法。相反,只需創建一個普通視圖,在左側放置一個表格視圖,在右側放置您的詳細視圖,然後適當設置自動大小的東西,以便在縱向和橫向上都看起來正確。

11

你一定要看看Matt Gemmell的MGSplitViewController

MGSplitViewController是一個開放 源替代 UISplitViewController,與各種 有用的增強。

49

這是你需要的魔力:

這種方法在UISplitViewControllerDelegate,iOS上提供5.0

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0); 
{ 
    return NO; 
} 
+9

這在iOS 8中已棄用。對於iOS 8或更高版本,將「preferredDisplayMode」屬性設置爲「UISplitViewControllerDisplayModeAllVisible」。 – LightningStryk 2014-12-30 20:59:15

5

由於shouldHideViewController在iOS8上棄用,你將需要使用它代替(斯威夫特):

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible 
4

正如ccwasden所述,shouldHideViewController已從iOS8開始棄用。在Objective-C,使用...

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 
1

在斯威夫特:

splitViewController.preferredDisplayMode = .AllVisible

相關問題