1

我目前正在UISegmentedControl以编程方式在导航控制器的工具栏中添加一个(如下所示)。

这种方法效果很好,我有我的UISegmentedControl,它会触发我设置的选择器没有问题。

问题是 - 我想使用selectedIndex这个控件来查询我的数据模型并为每个“段”呈现不同的数据视图 - 但我在获取selectedIndex.

在我的旅行中,我一直在咨询 Apple 提供的“热门歌曲”示例代码。UISegmentedControl在这段代码中,他们通过视图控制器和 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 回答