2012-04-25 5 views
2

私は私のプロジェクトで6番目のタブバーを追加したいと思っています。私はそれを試していますが、私はより多くの選択肢を得ていますが、もっとタブをクリックしても何も起こりません。これと他のロジックについても私に良い解決策を提供してください。ios sdkに5つ以上のタブバーを追加できますか?

+1

、関連するコードを入力してくださいあなたのデリゲートで、それ以外の場合は、 ... – sergio

+0

k。私たちは、ios sdkで6つのタブバーを追加することができると教えてください。...... – Nishi

+1

6つ以上のタブを持つことができますが、この場合はアイコンが4つだけ表示され、5つ目は標準の「More。他のタブのための別のリストコントローラーにつながります。 k。 – sergio

答えて

6

をiOSの9(そしておそらく8)のように、この操作を行うための簡単な方法があります。このトリックを使ってアプリを発送することはお勧めしません.6個のタブは4秒または5秒でかなり窮屈ですが、知っておくときれいです。

iPadタブバーには、「もっと」の項目がなくても5つ以上のタブを使っても問題ありません。

「タブレットかどうか」を判断するアップルの新しい方法サイズクラスがあります。

ので、サブクラスUITabBarControllerと実装:

-(UITraitCollection *)traitCollection 
{ 
    UITraitCollection 
    *realTraits = [super traitCollection], 
    *lieTrait = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular]; 
    return [UITraitCollection traitCollectionWithTraitsFromCollections:@[realTraits, lieTrait]]; 
} 

がそれに6つのビューコントローラを追加し、出来上がり!この場合、アップル社が宣伝していることを実践しているようです。

(*これは、タブ内のビューコントローラの水平サイズクラスに関するものでもあります)- setOverrideTraitCollection:forChildViewController:を適切な時刻に呼び出します(おそらくsetViewControllers:のオーバーライドで呼び出すことができます)。 。バック本物の1にそのように、彼らは混乱し、そのレイアウトの不適切幅広いバリエーションを表示してみてください)迅速で

+0

答え自体は完璧に動作しているようです。しかし、すべての場合にそうではありません。たとえば、AVPlayerViewControllerを使用すると、UITabBarControllerのポートレート/横向きの向きが特に乱れるようです。 –

4

、サブクラスUITabBarControllerをし、実装しません:。

override var traitCollection: UITraitCollection { 
    let realTraits = super.traitCollection 
    let lieTrait = UITraitCollection.init(horizontalSizeClass: .regular) 
    return UITraitCollection(traitsFrom: [realTraits, lieTrait]) 
} 
+0

ありがとう...... –

関連する問題