Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 11问题-如果将手势添加到导航栏,则不会触发栏按钮操作_Ios_Objective C_Uinavigationbar_Uibarbuttonitem_Ios11 - Fatal编程技术网

iOS 11问题-如果将手势添加到导航栏,则不会触发栏按钮操作

iOS 11问题-如果将手势添加到导航栏,则不会触发栏按钮操作,ios,objective-c,uinavigationbar,uibarbuttonitem,ios11,Ios,Objective C,Uinavigationbar,Uibarbuttonitem,Ios11,这在iOS 10上运行得非常好。但在iOS 11上不起作用显示弹出菜单未启动 gestureLeftArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftArrowGesture:)]; [self.navigationController.navigationBar addGestureRecognizer:gestureLeftArrow];

这在iOS 10上运行得非常好。但在iOS 11上不起作用<代码>显示弹出菜单未启动

gestureLeftArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftArrowGesture:)];
            [self.navigationController.navigationBar addGestureRecognizer:gestureLeftArrow];

            gestureRightArrow = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rightArrowGesture:)];
            [self.navigationController.navigationBar addGestureRecognizer:gestureRightArrow];  


UIImage *image = [[UIImage imageNamed:@"hamburger-new.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        UIBarButtonItem *flyoutButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(showFlyoutMenu)];
        self.navigationItem.rightBarButtonItem = flyoutButton;

您应该将手势识别器的
cancelsTouchesInView
设置为
false

见:

讨论
当此属性为true(默认值)且接收者识别其手势时,未将该手势的待处理触摸发送到视图,并通过发送到视图的touchesCancelled(:with:)消息取消先前发送的触摸。如果手势识别器无法识别其手势,或者此属性的值为false,则视图将接收多点触摸序列中的所有触摸


您应该将手势识别器的
cancelsTouchesInView
设置为
false

见:

讨论
当此属性为true(默认值)且接收者识别其手势时,未将该手势的待处理触摸发送到视图,并通过发送到视图的touchesCancelled(:with:)消息取消先前发送的触摸。如果手势识别器无法识别其手势,或者此属性的值为false,则视图将接收多点触摸序列中的所有触摸


是的。刚刚找到解决办法。要补充的是,这在iOS 11.2Yup中已经修复。刚刚找到解决办法。要补充的是,这在iOS 11.2中已经修复