2016-08-11 11 views
0

私はiOS開発の新機能です。私のアプリケーションでは、タブバーがあり、タブの1つにUISplitViewControllerがあります。私の問題は、私がタブに行くと詳細ビューが最初に表示されるということです。次に、私はマスタービューを取得するには、戻るボタンをクリックする必要があります。私はstackoverflow上でこの問題を抱えている他の人を見つけましたが、Objective-cのソリューションがあり、ストーリーボードを使用しています(クラスをどのようにクラスに追加するか分かりません)。UISplitViewControllerは詳細ビューを最初に表示します

また、ポートレートモードでipadを使用しているときには動作しません。私がランドスケープに移行するとうまくいきますが、ポートレートモードで黒い画面(戻るボタンなし)が表示されます。どんな助けもありがとう。ありがとう。

あなたが必要としている情報や見せたいものがわからないので、何かを残しておけば教えてください。 appdelegate

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    let tabBarController = self.window!.rootViewController as! UITabBarController 
    let splitViewController = tabBarController.viewControllers![3] as! UISplitViewController 

    ///////////////////Always visible property 
    splitViewController.preferredDisplayMode = .AllVisible 
    /////////////////// 
    let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController 
    navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem() 
    splitViewController.delegate = self 
    return true 
} 

アップデートを調整

:私はプロジェクト内のサンプルSplitViewControllerを作成し、appdelegateにプロパティを設定しているこの回答Open UISplitViewController to Master View rather than Detail

答えて

0

次固定してしまいました。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    let splitViewController = self.window!.rootViewController as! UISplitViewController 
    ///////////////////Always visible property 
    splitViewController.preferredDisplayMode = .AllVisible 
    /////////////////// 
    let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController 
    navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem() 
    splitViewController.delegate = self 
    return true 
} 

参考文献: UISplitViewController - set always visible master controller when

+0

はあなたに感謝し、私はhttps://github.com/harsh62/stackoverflow_TestMasterDetailApp

splitViewController.preferredDisplayMode = .AllVisible

完全な機能は次のとおりであるためにこれが動作します。私が家に帰ってあなたに知らせるとき、私はこれを試してみるでしょう。 –

+0

コードを試してこのエラーが発生しました 'UITabBarController'(0x1024988b0)の値を 'UISplitViewController'(0x1024a5240)にキャストできませんでした。 (lldb) –

+0

このプロパティを設定すると、このエラーが発生します。スプリットコントローラオブジェクトに 'preferredDisplayMode'を設定してみてください。 – Harsh

関連する問題