1

現在、プログラムでナビゲーション コントローラーのツールバーに を追加しUISegmentedControlています (以下を参照)。

このアプローチは正常に機能UISegmentedControlします。

問題は -selectedIndexこのコントロールの を使用してデータ モデルをクエリし、「セグメント」ごとに異なるデータ ビューを表示したいのですが、selectedIndex.

旅の途中で、Apple が提供する「Top Songs」のサンプル コードを参照してきました。このコードUISegmentedControlでは、View Controller と IB のオブジェクトを介してインターフェイスを構築します。そうすることで、彼らはのにアクセスできUISegmentedControlますselectedIndex。私はプログラムで私のものを追加していますが、この自由はありません。

UISegmentedControlビュー コントローラで を定義する必要がありますか? もしそうなら、プログラムでメニューを作成し続けたい場合、ナビゲーション コントローラの に埋め込まれたコントロールから情報にアクセスするにはどうすればよいUIToolBarですか?

私は明らかに基本的な何かを欠いています。どんな支援も常に大歓迎です:)

[self.navigationController setToolbarHidden:NO];

// Set up the edit and add buttons.
self.navigationItem.leftBarButtonItem = self.editButtonItem;

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject)];
self.navigationItem.rightBarButtonItem = addButton;
[addButton release];

NSArray *tabitems = [NSArray arrayWithObjects:@"ONE", @"TWO", @"THREE", @"FOUR", nil];
UISegmentedControl *tabs = [[UISegmentedControl alloc] initWithItems:tabitems];

[tabs addTarget:self
    action:@selector(pickedSegment:)
    forControlEvents:UIControlEventValueChanged];

tabs.segmentedControlStyle = UISegmentedControlStyleBar;
tabs.frame = CGRectMake(60, 8, 180, 30);
tabs.selectedSegmentIndex = 0;
//[self.navigationController.navigationBar addSubview:tabs];
[self.navigationController.toolbar addSubview:tabs];
[tabs release];
4

1 に答える 1

1

tabs.h ファイルで定義する必要があります -

@interface YourViewController : UIViewController
    ....
    UISementedControl *tabs;
    ....
@end
....
@property (nonatomic, retain) UISegmentedControl *tabs;

次に、[tabs release];行の後でもオブジェクトにアクセスできるはずです。これは保持されたプロパティであるためselectedItemIndex、通常どおりにアクセスします。

于 2010-07-19T07:48:49.770 に答える