web-dev-qa-db-ja.com

タブバーにアイコンが表示されませんか?

たくさんの関連する質問を読み、彼らが言ったことを試しましたが、実際には何もうまくいきません。理由はわかりません。したがって、3つの異なるUIStoryboardsがあります。 1つ目は、ログイン/登録を処理するAuth Storyboardで、2つ目のStoryboard-Tab bar storyboardへのストーリーボード参照があります。このストーリーボードには、別のビューコントローラーをロードする他の5つのストーリーボード参照が含まれています。

私の問題は、ユーザーがログインするとアイコンが表示されないことです。最初のView Controllerのカスタム色をUITabViewControllerに設定して、確実にロードされるようにします。します。

すべての画像/アイコンを「オリジナル」としてレンダリングするように設定しようとしましたが、うまくいきませんでした。システムイメージを設定しましたが、それが問題かどうかを確認するためだけに表示されていません。また、言及する価値があるのは、ストーリーボードにアイコンが表示されますが、コンパイルされているとき、シミュレーターではアイコンがどこにも表示されないことです。

私は何を間違えていますか?

enter image description here

PS:タブバーの色合いを変更して、テストするだけで機能します。だから、問題はそれではありません...

16
Bold Lion

ストーリーボードの参照とタブバーアイコンが表示されない問題

Tab Bar ControllerにStoryboard Referencesがアタッチされている場合、Storyboard Referenceには実際にUITabBarItemがあります:

fake UITabBarItem

この「フェイク」UITabBarItemのプロパティを設定しないでください!

アプリを実行しても、設定は何もしません。指定する値は、Interface Builderでの表示にのみ影響し、実行時のアプリには影響しません。

解決

あなたがする必要があるのは、ストーリーボードの参照が指している実際のView Controllerに行くことです。そのView ControllerにもUITabBarItemがあります。これが「実際の」UITabBarItemです。そこにプロパティ(アイコン、タイトルなど)を設定すると、アプリを実行すると表示されます。

actual view controller

21
Mark Moeykens

接続を説明する画像を添付しました:

  1. TabBar Controllerを5つのView Controllerに接続します

  2. View Controllerごとに、任意のView Controllerを選択->上部のXcodeオプションでエディターに移動->埋め込み-> Navigation Controller

  3. Navigation Controllerの一番下のバーを選択->ユーティリティで属性インスペクターを開きます->画像で強調表示されているタイトルと画像を指定します

enter image description here

ログイン/登録からTabBar画面への移動:ストーリーボードIDをTabBarControllerに提供します。 「TabBarController」を選択し、対応するStoryboardのStoryboard IDを使用してTabBarControllerインスタンスを作成します。

Swift 3

func navigateToTabBar() {
    let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
    let nextViewController = storyBoard.instantiateViewController(withIdentifier: "TabBarController") as UIViewController
    self.present(nextViewController, animated:true, completion:nil)
}
10
Rahul Kumar