我一直在研究我的书籍应用程序,但我有一个UIBarButtonItem困境。我已在工具栏上设置了3个条形按钮,如下图所示。它们工作正常,直到我设置单击识别器,代码中的最后2行。我想要做的是通过一次点击离开这个模态屏幕,而不是双击,而不是通过在工具栏上添加另一个“取消”按钮。设置单击识别器后,没有任何条形按钮项工作。 我怎样才能摆脱这种困境。任何人都能告诉我如何解决这个问题吗?谢谢你的时间。
UIToolbar* toolbar = [[UIToolbar alloc] init];
toolbar.barStyle = UIBarStyleDefault;
[toolbar sizeToFit];
toolbar.frame = CGRectMake(0, 410, 320, 50);
toolbar.tintColor = _label.backgroundColor;
self.title = @"Test For Toolbar";
UIBarButtonItem* TofC = [[UIBarButtonItem alloc] initWithTitle:@"T of C"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(showTofC)];
UIBarButtonItem* bookMark =
[[UIBarButtonItem alloc] initWithTitle:@"Book Mark"style:UIBarButtonItemStyleBordered
target:self
action:@selector(bookMarkIt)];
UIBarButtonItem* searchBtn = [[UIBarButtonItem alloc] initWithTitle:@"Search"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(searchIt)];
UIBarButtonItem* spacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:self
action:nil];
NSArray* buttons =
[NSArray arrayWithObjects:TofC, spacer, bookMark, spacer, searchBtn, nil];
self.navigationController.toolbarHidden = NO;
[toolbar setItems:buttons animated:NO];
[self.view addSubview:toolbar];
/*
// Single Tap
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTapGesture:)];
[self.view addGestureRecognizer:tapGesture];
*/
// Single Tap
Dum2ViewController* dum2ViewController = [[Dum2ViewController alloc] init];
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc]
initWithTarget:dum2ViewController
action:@selector(handleTapGesture:)];
[dum2ViewController.view addGestureRecognizer:tapGesture];
答案 0 :(得分:0)
您已将工具栏添加为主视图的子视图,然后将手势识别器附加到主视图。
因此,只要您触摸工具栏,触摸就会首先进入主视图并截获手势识别器,然后才能将其传递到工具栏项目。
我建议做的是在当前视图中的任何内容(另一个子视图?)上设置手势识别器。这样,工具栏中的触摸将被路由到工具栏,并且视图内的触摸将转到(内容)子视图并被手势识别器捕获。
有道理吗?