禁用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]; 

希望帮助

+0

谢谢,我错过了文档中的内容。 有没有一种更简单的方法来禁用整个控制,而不是每个部分轮流做这个? – 2009-05-17 17:34:43

+0

它是UIControl的一个子类,所以你应该能够简单地做segmentedControl.enabled = NO ;.在上面提供的代码中,您可以在“rightBarButtonItem”之后和“.enabled”之前添加“.customView”。 – 2009-05-17 18:11:51

[navItem.rightBarButtonItem setEnabled:NO]; 

就这么简单:)

参考:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBarItem_Class/Reference/Reference.html启用财产。