2012-01-03 7 views
6

私が作成しているアプリケーションをXCode 4とストーリーボードで使用していますが、UIToolbarを視覚的に変更することはできません。xcodeストーリーボードからUIToolbarを視覚的に変更する

私はUIToolViewControllerの内部にあるUIToolbarを修正しようとしていますが、視覚的に変更できるようにするためには正しい階層からUIToolbarを外さなければなりません。私はビューコントローラの領域に配置しようとしましたが、それは表示されません。

それは自分の物だとして、ある時点で私は、しかし、私はそれを再作成することができませんでした、それは以下の見せかけることができました。

Problem

私はそれがこの Problem

答えて

21

UITableViewControllerはすでにUIToolbarを持っているUINavigationControllerの中にあり、新しい階層をビュー階層にドラッグする必要はありません。 Interface Builderは、インスペクタパネルのSimulated Metricsでツールバーをシミュレートできます。

シミュレートされたツールバーが表示されたら、単にそれにUIBarButtonItem秒をドラッグします。ボタンやスペーサーより複雑なものが必要な場合は、カスタム表示のカスタム項目を使用します。

ツールバーの項目を動的にする必要がある場合は、IBOutletを介して参照を保持することができます。次に、UITableViewControllertoolbarItemsプロパティを設定するか、実行時に-setToolbarItems:animated:を呼び出して適切な項目を表示します。

は、AppleのUINavigationController Class Reference: Displaying a Toolbarを参照してください。

+0

問題はありましたが、以前はシミュレートしたツールバーにアイテムをドラッグできませんでしたが、クラッシュを検出した後、xcodeの実行中のセッションを維持していたためでした。バーボタンの項目をシミュレートされたツールバーにドラッグするだけで、期待した結果が得られました。 – 1dayitwillmake

+0

同時に、私はそれが自身のエンティティであるので、そのツールバーがどのように底に表示されるようになったのかを知りたいと思います。 – 1dayitwillmake

+1

ああ、私も。何も思いつきません。 –

1

UITableViewControllersはもちろんのUITableViewである1つのビューオブジェクトを、のみを許可するように見えるように取得することができた後は。 UITableViewsはサブビューのために協調的ではなく、通常はすべてをフッターやヘッダーにプッシュします。このような何かを行うことはできません。

-TableController 
    -Table 
     -Subview 
     -Another subview 

UITableViewControllersはこれに縮小されています

-TableViewController 
    -Table 

だからのUIViewControllerを使用し、そこでのUITableViewを宣言する必要があります。相続人階層はあなたがして使用する必要があります:あなたのViewController.hで

- ViewController <Table's Delegate & Data Source> 
    - View   
     -Table 
     - Your UIToolbar 

はIBOutletのUITableViewを宣言してのViewControllerにデータソースとデリゲートを接続します。次に、.mファイルにUITableViewの実装を追加するだけでよいのです。

+0

私は実行時に問題がありません。単純にストーリーボード内にあります。ツールバーを視覚的に変更することはできませんが、実行時に正しく表示されます。 – 1dayitwillmake

+0

さて、私が説明したことを試してみてください。それはうまくいくかもしれません。 – JonasG

+0

興味深い考えですが、私はそれをする必要はありません。私はまた、ツールバーを偶然一度だけ表示させることができました。だから私は方法があると確信しています。 – 1dayitwillmake

2

質問に答えるために、ビジュアルエディタはほとんどのコントロール、ビュー階層、および委任パターンの設定を簡略化しますが、チェックアウトすることは開発者次第です。 UITableViewControllerの実装では、Xcodeがビジュアルエディタを通じて強制しないビュー階層について、特定の前提とアサーションを行います。あなたの望むビュー階層がサポートされていないとすれば、私はエディタの動作が未定義であるか無関係であると仮定しなければならない。回避策については、Maxnerの提案を参照してください。

関連する問題