2011-07-27 3 views
1

UINavigationItemUISegmentedControlを追加するにはどうすればよいですか? セグメントコントロールでUINavigationBarを作成し、ナビゲーションバーのタイトルを追加したいとします。UINegigationContemをUINavigationItem ..に追加するには?

UISegmentedControlには2つのインデックスがあります。

は、ここで私が持っているものです。

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:[UIImage imageNamed:@"grid.png"],[UIImage imageNamed:@"list.png"],nil]]; 
    [segmentedControl addTarget:self action:@selector(segmentedAction) forControlEvents:UIControlEventValueChanged]; 
    segmentedControl.frame = CGRectMake(0, 0, 90, 40); 
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
    segmentedControl.momentary = YES; 
    [segmentedControl setTintColor:[UIColor clearColor]]; 

    UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];  
    self.navigationItem.rightBarButtonItem = segmentBarItem; 

私は右側にそれを入れていました。だから、また、ナビゲーションバーの真ん中に入れたい。

これはうまくいかない場合は私に教えてください動作しません。あなたはほとんどそこにいる

おかげ

+1

それは、このコードを使用している行う一つの方法:のhttp:// stackoverflowの.com/questions/6828270/uinavigationbar-two-buttons-on-the-left/6828577#6828577とフレームの原点を中央で開始するように変更します。 – Jano

+0

tanks Jano ..それは動作します –

答えて

1

は、あなただけのUINavigationItemにセグメント化されたコントロールを追加し、UINavigationBarにそれを追加する必要があります。

// This code is used for a custom navigation bar 

UINavigationItem* newItem = [[UINavigationItem alloc] initWithTitle:@""]; 
[newItem setTitleView:segmentedControl]; 

// Assuming you already have a navigation bar called "navigationBar" 
[navigationBar setItems:[NSArray arrayWithObject:newItem] animated:NO]; 

// No memory leaks please... 
[newItem release]; 

または既存のコントローラ

を使用したい場合
// This is used for an existing navigation controller 
[navigationController.navigationBar.topItem setTitleView:segmentedControl]; 
// or if you want to access through the root view controller of the nav controller 
[rootController.navigationItem setTitleView:segmentedControl]; 

ナビゲーションバーの中央のビューをセグメント化されたコントロールに設定する必要があります。

希望すると助かります!

EDIT:あなたはより多くの助けが必要な場合は、これらのクラスのアップルのドキュメントはかなり徹底している:

UINavigationItem

UINavigationBar

+0

私のクラスはすでにナビゲーションベースクラスです。このように、 'setItems:animated:コントローラによって管理されるUINavigationBarで直接呼び出すことはできません。' ... –

+0

私は既存のナビゲーションコントローラ。どのように動作するか教えてください。 – foslock

+0

このリンクを参照してください.. http://stackoverflow.com/questions/6828270/uinavigationbar-with-two-buttons-on-the-left/6828577#6828577今それは働く –

関連する問題