- 下のUIToolbarにセグメント化されたコントロールを追加しようとしていますが、ストーリーボードにドラッグしようとすると、テーブルビューが置き換えられます。
- また、ツールバーにUIBarButtonを追加しようとすると、プロトタイプセルが押し下げられます...ビュー階層が間違っていますか?
- とにかくUIBarButtonアイテムを追加すると、シミュレーターでは、ナビゲーションコントロールインスペクターで設定したツールバーが黒透明ではありません。どうしたの?
ありがとう!
ありがとう!
Interface Builderを使用してツールバーにセグメント化されたコントロール要素を作成するには、次のヒントを使用できます。
1)ナビゲーションコントローラーでセグメント化されたコントロールバーボタンアイテムを作成します。
2)バーボタンアイテムをナビゲーションアイテムまでドラッグします
3)次に、次の構造を取得する必要があります
4)これで、セグメント化されたコントロールを選択して、そのプロパティを設定できます
1-プログラムで実行します。最初にフレームをUIToolbarに割り当てる必要があります。次に、フレームに要素を追加できます(segmentedControl)。UIBarButtonItems
基本的に同じであるを使用することをお勧めします。
それを底に貼り付けるには、次のようにしてみてください。
#define SCREEN_FRAME [[UIScreen mainScreen] applicationFrame]
CGRect frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 44, [[UIScreen mainScreen] bounds].size.width, 44);
UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:frame];
toolBar.frame = CGRectMake(0,self.view.frame.size.height-toolBar.frame.size.height,SCREEN_FRAME.size.width,toolBar.frame.size.height);
//Setting up the items
UIBarButtonItem *first = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease];
UIBarButtonItem *second = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"image.png"] style:UIBarButtonItemStylePlain target:self action:@selector(yourAction:)] autorelease];
//Creating an array with the items
NSArray *items = [NSArray arrayWithObjects:first,second, nil];
//Assigning the array to the toolBar
[toolBar setItems: items];
次に、そのスタイルを設定できます
mytoolbar.barStyle = UIBarStyleBlack;
2-上記と同じ、フレーミング。
3-navigationControllerスタイルを黒に設定する必要があります。
使用self.navigationController.navigationBar.style = UIBarStyleBlack
; 、またはIBでボタンを選択し、インスペクターから色合いまたはスタイルを任意に設定します。
この質問もチェックしてください
ここのどこかにナビゲーションビューコントローラーがあると思います。独自のツールバーがありますが、非表示で空です。表示されているツールバーは、UIを編集できるようにするためのツールバーのシミュレーションにすぎません。
したがって、ストーリーボードでこれを行うには、セグメント化されたコントロールをシミュレートされたツールバーに追加せず、新しいツールバーを作成して、コントローラーで使用可能なビューのツリーに追加し(テーブルビューの兄弟として)、参照するIBOutletを作成します。それ。次に、viewDidLoadメソッドで、ツールバーの項目を、ViewControllerによってすでに作成されているツールバーに割り当てます。
この例では、View Controllerに(巧妙に)toolbarというプロパティを作成しました。
@property (nonatomic, retain) IBOutlet UIToolbar toolbar;
ビューコントローラの実装では、ツールバー項目を手動で割り当てます。
-(void)viewDidAppear:(BOOL)animated
{
[self setToolbarItems:self.toolbar.items animated:NO];
[self.navigationController setToolbarHidden:NO animated:YES];
}
たとえば、呼び出し元のView Controllerで、View Controllerがポップされたときに、ツールバーを非表示にする必要があります。
-(void)viewWillAppear:(BOOL)animated
{
[self.navigationController setToolbarHidden:YES animated:YES];
}
もちろん、あなたがそれを隠したいと仮定します。
これを行うには、UISegmentedControllerをバーボタンアイテムに配置します。
UINavigationControllerウィンドウにツールバーを追加し、ViewController画面でこのツールバーの表示を有効にします。
バーボタンをViewController画面のツールバーにドラッグし、UISegmentedControllerをその中にドラッグします(ボタンのサイズを画面の全幅に変更します)
すべてを接続するには、Ctrlキーを押しながらUISegmentedControllerから対応する.hファイルにドラッグし、「参照元」から黄色のView Controllerアイコンに(同じ変数名を使用して)ドラッグしてから、「ValueChanged」から黄色のアイコンにドラッグします(新しい選択で呼び出すコントローラーのメソッドを選択します)。
これはすべて期待どおりに機能しているようです。(コントローラーでセグメントを選択して初期値を設定できない場合は、上記のように参照コンセントを接続していません。しばらくの間、困惑しました。)