【发布时间】:2010-01-21 01:06:50
【问题描述】:
我有一个 UIViewController 类,其中显示了一个导航栏,并且在导航栏的最右端有一个按钮。然后在它的正下方是我的主要内容区域,导航栏下方显示了 UISegmentedControl。
每当我点击/点击右侧按钮附近的导航栏而不是直接点击按钮时,我都会收到意外的按钮按下事件。通常,当我尝试点击恰好位于按钮下方的最右边的分段项目时。所以点击是在按钮而不是片段上。如何确保将事件定向到正确的接收者?
我的 UI 是使用 Interface Builder 创建的,并且 UISegmentedControl 在 nib 文件中连接到我的类。
我的班级:
@interface MyViewController : UIViewController
{
IBOutlet UISegmentedControl *segmentedControl;
}
@end
@implementation MyViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
UIBarButtonItem *button = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
target:self action:@selector(onButtonPressed:)];
self.navigationItem.rightBarButtonItem = button;
[button release];
}
- (IBAction)onButtonPressed:(id)sender
{
NSLog(@"onButtonPressed reached!");
}
- (IBAction)onSegmentItemPressed:(id)sender
{
NSLog(@"onSegmentItemPressed for: %d", [segmentedControl selectedSegmentIndex]);
}
@end
【问题讨论】:
标签: iphone