我目前正在开发基于 https://github.com/stefanoa/SASlideMenu 的 ios 应用程序(副菜单类)和 Storyboard。
在我的右侧菜单上,我已将一个按钮与自定义转场 (SASlideMenuPushSegue) 连接起来。 这在正常使用中工作正常,但如果我在按钮上敲击的速度足够快,我可以设法推送更多 View 。
例如,如果我双击按钮,将推送 2 个 View 。 我不知道它来自哪里。这是转场代码:
-(void) perform{
SASlideMenuRightMenuViewController* source = self.sourceViewController;
SASlideMenuRootViewController* root = source.rootController;
SASlideMenuNavigationController* destination = self.destinationViewController;
[root pushRightNavigationController:destination];
}
知道这个错误的来源吗? 感谢您的回答。
最佳答案
在里面放一个 BOOL isPressed
并检查在那个特定的类中之前是否按下了按钮。
-(void) perform
{
if(!isPressed)
{
SASlideMenuRightMenuViewController* source = self.sourceViewController;
SASlideMenuRootViewController* root = source.rootController;
SASlideMenuNavigationController* destination = self.destinationViewController;
[root pushRightNavigationController:destination];
isPressed = YES;
}
}
然后重置isPressed
。当我展示一个 popovercontroller
时,我遇到了与 segue 相同的事情,每次我将按钮一个接一个地按下时,它都会出现,所以我认为我们需要处理这种行为。
关于IOS 双击触发 2 segues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17648975/