禁用UINavigationItem自定义权限视图?
问题描述:
创建自定义右视图如下:禁用UINavigationItem自定义权限视图?
// Build the Segmented Control
NSArray *segmentTextContent = [NSArray arrayWithObjects:[UIImage imageNamed:@"arrow-dice.png"], [UIImage imageNamed:@"arrow-up.png"], [UIImage imageNamed:@"arrow-down.png"], nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
// Customize the Segmented Control
segmentedControl.momentary = YES;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
然后我把它添加到我的导航栏,如下所示:
// Add the control to the navigation bar right item
UIBarButtonItem *segmentItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
[segmentedControl release];
self.navigationItem.rightBarButtonItem = segmentItem;
self.navigationItem.rightBarButtonItem.title = @"";
[segmentItem release];
我可以将其隐藏,如下所示:
self.navigationItem.rightBarButtonItem.customView.hidden = NO;
问题 ...但我怎样才能禁用分段控制的所有(或更好,一个特定的元素)?
以下不起作用。
self.navigationItem.rightBarButtonItem.enabled = NO;
赞赏任何想法...
感谢,
亚光
答
UISegmentedControl.h
- (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;
- (void)removeAllSegments;
- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment; //default is YES
e.g. [segmentedControl setEnabled:NO forSegmentAtIndex:1];
希望帮助
答
[navItem.rightBarButtonItem setEnabled:NO];
就这么简单:)
谢谢,我错过了文档中的内容。 有没有一种更简单的方法来禁用整个控制,而不是每个部分轮流做这个? – 2009-05-17 17:34:43
它是UIControl的一个子类,所以你应该能够简单地做segmentedControl.enabled = NO ;.在上面提供的代码中,您可以在“rightBarButtonItem”之后和“.enabled”之前添加“.customView”。 – 2009-05-17 18:11:51