2011-01-07 55 views
3

我想開發一個基於SPLITVIEW iPad應用程序,顯示在每一個方向分割接口。我已經嘗試了在this教程中給出的UISplitViewController類的子類化,但它不起作用。正如上面博客中的一條評論中所建議的,我嘗試創建一個類別來設置_hidesMasterViewInPortrait = (hidden) ? 0 : 1;,但沒有任何結果。強制iPad應用程序,以顯示即使是在縱向方向SPLITVIEW(如設置iPad應用)

誰能幫我找到出路的這一點,而無需使用任何第三方框架或類?

+0

您好,有一個非常簡單和有效的方法是: [splitViewController setHidesMasterViewInPortrait:NO]; 但它是一個無證API,這意味着Apple不允許我們使用它。無法相信! – 2011-03-21 02:34:27

回答

0

我從來沒有達到迫使SPlitViewController要做到這一點,但由於需要更換零件創建控制器,你可以重複使用這些控制器來顯示內容,您想要的方式。

+0

根據Jilouc的評論 – Vin 2011-01-08 05:09:32

2

我不知道這是可能的標準SplitViewController,但你所描述像蘋果的設置應用程序(在iPad上)的聲音是什麼,你可以自定義一個從

https://github.com/mattgemmell/MGSplitViewController

+0

,我認爲這將是最可行的選擇感謝您的回覆,但正如我在我的帖子中所說,我正在嘗試找到一個解決方案,而不使用任何第三方類。也許如果你把這個項目扔在給定的鏈接上,你可以幫我解決它們是如何做到的! – Vin 2011-01-07 11:24:00

+1

沒有官方的方式來做到這一點,並設置`_hidesMasterViewInPortrait`導致應用程序拒絕恕我直言(因爲它很明顯是私人東西)。 – Jilouc 2011-01-07 12:38:00

+0

+1。我想我會嘗試實施VdesmedT的回答 – Vin 2011-01-08 05:10:30

3

使用。我的直覺是,這不是一個UISplitView。這只是一個包含兩個表視圖的視圖。設備旋轉時手動修復佈局。換句話說,如果你不想要UISplitView的功能,那麼你根本就不需要UISplitView。

編輯12/19/2011:在iOS 5中的問題基本解決了,因爲你現在可以定義自己的容器視圖控制器,再加上你可以防止在拆分視圖左視圖解僱。

1

你也可以繼承UISplitViewController,然後覆蓋下面的方法:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval) duration 
0

你好,我的第一篇文章,我希望能幫助:

這裏是它的工作原理

[splitViewController setHidesMasterViewInPortrait:NO]; 
0

你不能的方式蘋果的splitViewController的行爲就像這樣(並進入應用商店)。您需要編寫自己的容器視圖控制器。 See Apple' docs

13

在實現UISplitViewControllerDelegate協議(通常爲DetailViewController)的viewController類中添加以下代碼。

- (BOOL) splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { 
    return NO; 
} 

根據該文件,這已經因爲iOS的5

已提供給看到它在行動:
-open的Xcode。
- 創建一個新的主/從應用程序。
-Add上述代碼到DetailViewController
-Run在iPad模擬器。

在自己的項目,你會希望下面的行添加到detailViewController的viewDidLoad方法。

self.splitViewController.delegate = self; 
0
you just need to add this delegate method to your detail view manager 

    - (BOOL)splitViewController:(UISplitViewController *)svc 
     shouldHideViewController:(UIViewController *)vc 
        inOrientation:(UIInterfaceOrientation)orientation 
    { 
     // Hide split view in portrait mode 
     //return UIInterfaceOrientationIsPortrait(orientation); 

     // Show Split view in portrait mode 
     return NO; 
    } 

//vKj 
11

在iOS8上(SWIFT),使用:

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible 
相關問題