たくさんの関連する質問を読み、彼らが言ったことを試しましたが、実際には何もうまくいきません。理由はわかりません。したがって、3つの異なるUIStoryboards
があります。 1つ目は、ログイン/登録を処理するAuth Storyboardで、2つ目のStoryboard-Tab bar storyboardへのストーリーボード参照があります。このストーリーボードには、別のビューコントローラーをロードする他の5つのストーリーボード参照が含まれています。
私の問題は、ユーザーがログインするとアイコンが表示されないことです。最初のView Controllerのカスタム色をUITabViewController
に設定して、確実にロードされるようにします。します。
すべての画像/アイコンを「オリジナル」としてレンダリングするように設定しようとしましたが、うまくいきませんでした。システムイメージを設定しましたが、それが問題かどうかを確認するためだけに表示されていません。また、言及する価値があるのは、ストーリーボードにアイコンが表示されますが、コンパイルされているとき、シミュレーターではアイコンがどこにも表示されないことです。
私は何を間違えていますか?
PS:タブバーの色合いを変更して、テストするだけで機能します。だから、問題はそれではありません...
Tab Bar ControllerにStoryboard Referencesがアタッチされている場合、Storyboard Referenceには実際にUITabBarItemがあります:
この「フェイク」UITabBarItemのプロパティを設定しないでください!
アプリを実行しても、設定は何もしません。指定する値は、Interface Builderでの表示にのみ影響し、実行時のアプリには影響しません。
あなたがする必要があるのは、ストーリーボードの参照が指している実際のView Controllerに行くことです。そのView ControllerにもUITabBarItemがあります。これが「実際の」UITabBarItemです。そこにプロパティ(アイコン、タイトルなど)を設定すると、アプリを実行すると表示されます。
接続を説明する画像を添付しました:
TabBar Controllerを5つのView Controllerに接続します
View Controllerごとに、任意のView Controllerを選択->上部のXcodeオプションでエディターに移動->埋め込み-> Navigation Controller
- Navigation Controllerの一番下のバーを選択->ユーティリティで属性インスペクターを開きます->画像で強調表示されているタイトルと画像を指定します
ログイン/登録から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)
}