UITabBarControllerによって自動的に別のペン先からUINavigationControllerのロード

StackOverflow https://stackoverflow.com/questions/883510

  •  22-08-2019
  •  | 
  •  

質問

IBにおける文書情報ウィンドウが警告しています:の「 『選択されたナビゲーションコントローラ(秒)』 『SecondView.nib』に設定ペン先名のプロパティを持っていますが、このビューコントローラは、

私は、原因を見つけたと思いますこのように、そのビューセットを持ってすることを意図していない。」

残念ます。

<時間>

私はトップレベルとUITabBarControllersの間のスイッチでUINavigationControllerたInterface Builderでペン先を構築しました。

すべてが単一nibファイル内にあるとき、それは正常に動作しますが、私はnibsのために別々の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]];
あなたはUITabBarItemsにを持っているように、

まず、それは代わりに直接UITabBarController下のナビゲーションコントローラの下に見えます。それはあなたの問題の一部であってもよい。

あなたはIBでUITabBarControllerを追加し、トップレベルのオブジェクト(あなたの最初のスクリーンショット)のリストのアイコンをクリックすると、

第二に、属性インスペクタを使用すると、各タブにあるビューコントローラの種類を変更することができます。あなたが希望する場合は、これを使用すると、ナビゲーションコントローラにそれらすべてを変更することができます。あなたが他のニブからカスタムビューとビューコントローラをロードしたかったので、あなたは、属性インスペクタの下部にある「ビュー・コントローラ」セクションを見ればまた、あなたはからの眺めをロードするために、プロジェクトからペン先を選択することができます。そのペン先の「ファイルの所有者が」あなたのUINavigationControllerサブクラスに設定されていると仮定すると、それはすべて正常に動作する必要があります。

のいずれか、仕事を符号化する大量のないこのすべて。あなたは私はあなたがこれらのパネルを見つけることができない場合には話している何のためにスクリーンショットが欲しいなら、私に教えてくださいます。

私は同じwarning.Iは別のXIBファイル内のすべてのビューコントローラを保持している見つけました。私は.nib名前を削除し、それが空であることを保つことによってそれを処分した。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top