UITabBarControllerによって自動的に別のペン先からUINavigationControllerのロード
-
22-08-2019 - |
質問
私は、原因を見つけたと思いますこのように、そのビューセットを持ってすることを意図していない。」
の残念ます。
<時間>私はトップレベルとUITabBarController
sの間のスイッチでUINavigationController
たInterface Builderでペン先を構築しました。
すべてが単一nib
ファイル内にあるとき、それは正常に動作しますが、私はnib
sのために別々のUINavigationController
ファイルを使用したいと思います。
UINavigationController
するSecondViewのクラスを変更する場合は、、AppleのTabBarのテンプレートから始めます:
と私が得るすべてはこれです:
// imgur has lost the image, sorry //
これは、プログラムのすべてを設定せずにUINavigationController
用に別のファイルを持つことは可能ですか?
私はニブのロードとアンロードを処理するためのTabBarController
をしたいと思います。
解決
単にFirstViewControllerでUINavigationControllerを交換します。
だから、階層は次のようにする必要があります:
Tab bar controller
-----Tab bar
-----Navigation Controller
----------First View Controller
---------------Navigation Item
----------Tab bar item (First)
-----Navigation Controller
----------Second View Controller
---------------Navigation Item
----------Tab bar item (Second)
あなたは(あなたが良いことである、別々のファイルにそれらを分割しようとしているので)実際のビューオブジェクトを含むnibファイルへのインスペクタで最初のビューコントローラのペン先を設定します。
あなたは、タブがそのルートビューとして最初のビューコントローラをロードナビゲーションコントローラを持っていることを、一つのタブを持っています。
完了ます。
他のヒント
私はIB経由でUINavigationControllerを設定しようとしていません。私は、それぞれ別々のXIBに格納されているとのUIViewControllerを拡張し、対応するクラスがあります、複数の画面を有しています。 applicationDidFinishLaunchingでは、私はXIB年代を使ってUIViewControllersを初期化するが、その後、手動で、UINavigationControllerを作成ウィンドウにナビゲーションコントローラのビューを追加し、ナビゲーションコントローラに最初のビューをプッシュします。
それが助けかどうかわからない。
- (void)applicationDidFinishLaunching:(UIApplication *)application {
navigationController = [[UINavigationController alloc] init];
FirstViewController * viewController = [[FirstViewController alloc]
initWithNibName:@"FirstView"
bundle:nil];
[navigationController pushViewController:viewController animated:NO];
[viewController release];
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
}
FirstViewController上記は、あなたがUIViewののビューへのファイルの所有者のビューをあなたのクラス(例えばここではFirstViewController)にあなたの視野そして、設定ファイルの所有者のクラスを作成し、接続するIBでのUIViewControllerは、拡張します。
私はあなたがこのような何かを探していると信じています。あなたは二nibファイルの名前で「何を」置き換えます。
newNavController = [[UINavigationController alloc] initWithNibName:@"whatever" bundle:[NSBundle mainBundle]];
UITabBarItem
sにを持っているように、まず、それは代わりに直接UITabBarController
下のナビゲーションコントローラ
UITabBarController
を追加し、トップレベルのオブジェクト(あなたの最初のスクリーンショット)のリストのアイコンをクリックすると、第二に、属性インスペクタを使用すると、各タブにあるビューコントローラの種類を変更することができます。あなたが希望する場合は、これを使用すると、ナビゲーションコントローラにそれらすべてを変更することができます。あなたが他のニブからカスタムビューとビューコントローラをロードしたかったので、あなたは、属性インスペクタの下部にある「ビュー・コントローラ」セクションを見ればまた、あなたはからの眺めをロードするために、プロジェクトからペン先を選択することができます。そのペン先の「ファイルの所有者が」あなたのUINavigationController
サブクラスに設定されていると仮定すると、それはすべて正常に動作する必要があります。
のいずれか、仕事を符号化する大量のないこのすべて。あなたは私はあなたがこれらのパネルを見つけることができない場合には話している何のためにスクリーンショットが欲しいなら、私に教えてくださいます。
私は同じwarning.Iは別のXIBファイル内のすべてのビューコントローラを保持している見つけました。私は.nib名前を削除し、それが空であることを保つことによってそれを処分した。