我想開發一個基於SPLITVIEW iPad應用程序,顯示在每一個方向分割接口。我已經嘗試了在this教程中給出的UISplitViewController類的子類化,但它不起作用。正如上面博客中的一條評論中所建議的,我嘗試創建一個類別來設置_hidesMasterViewInPortrait = (hidden) ? 0 : 1;
,但沒有任何結果。強制iPad應用程序,以顯示即使是在縱向方向SPLITVIEW(如設置iPad應用)
誰能幫我找到出路的這一點,而無需使用任何第三方框架或類?
我想開發一個基於SPLITVIEW iPad應用程序,顯示在每一個方向分割接口。我已經嘗試了在this教程中給出的UISplitViewController類的子類化,但它不起作用。正如上面博客中的一條評論中所建議的,我嘗試創建一個類別來設置_hidesMasterViewInPortrait = (hidden) ? 0 : 1;
,但沒有任何結果。強制iPad應用程序,以顯示即使是在縱向方向SPLITVIEW(如設置iPad應用)
誰能幫我找到出路的這一點,而無需使用任何第三方框架或類?
我從來沒有達到迫使SPlitViewController要做到這一點,但由於需要更換零件創建控制器,你可以重複使用這些控制器來顯示內容,您想要的方式。
根據Jilouc的評論 – Vin 2011-01-08 05:09:32
我不知道這是可能的標準SplitViewController,但你所描述像蘋果的設置應用程序(在iPad上)的聲音是什麼,你可以自定義一個從
使用。我的直覺是,這不是一個UISplitView。這只是一個包含兩個表視圖的視圖。設備旋轉時手動修復佈局。換句話說,如果你不想要UISplitView的功能,那麼你根本就不需要UISplitView。
編輯12/19/2011:在iOS 5中的問題基本解決了,因爲你現在可以定義自己的容器視圖控制器,再加上你可以防止在拆分視圖左視圖解僱。
你也可以繼承UISplitViewController,然後覆蓋下面的方法:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval) duration
你好,我的第一篇文章,我希望能幫助:
這裏是它的工作原理
[splitViewController setHidesMasterViewInPortrait:NO];
你不能的方式蘋果的splitViewController的行爲就像這樣(並進入應用商店)。您需要編寫自己的容器視圖控制器。 See Apple' docs
在實現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;
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
在iOS8上(SWIFT),使用:
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
您好,有一個非常簡單和有效的方法是: [splitViewController setHidesMasterViewInPortrait:NO]; 但它是一個無證API,這意味着Apple不允許我們使用它。無法相信! – 2011-03-21 02:34:27