在Segue完成iOS + Swift之前按下按钮

时间:2016-04-08 16:37:39

标签: ios swift

当我使用按钮在视图控制器之间切换时,如果我反复按下按钮,则下一个视图控制器将继续显示。我不知道导致错误的原因。

视频:https://drive.google.com/file/d/0B64lwT9kq3khRHNtZ0d0Q1hiNEk/view?usp=sharing

1 个答案:

答案 0 :(得分:0)

circle expand 动画期间,您的按钮看起来仍处于活动状态,因此每次按下该按钮时,另一个视图控制器都会被推送到导航堆栈。然后推动动画堆叠起来。

尝试在触发动画之前禁用该按钮,并在使用button.enabled = NO;button.userInteractionEnabled = NO;后重新启用该按钮。

或者,您可以实施-prepareForSegue:sender:并在segue之前禁用该按钮,然后重新启用-viewWillAppear:中的按钮。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"YourSegueIdentifier"]) {
        self.nextButton.userInteractionEnabled = NO;
    }
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.nextButton.userInteractionEnabled = YES;
}

要获得segue.identifier,只需点击IB中的segue,然后转到“属性检查器”选项卡。如果你更喜欢使用IB来处理segits而不是UIControl(或者在这种情况下是UIButton)上的目标动作,这种方法可能比你更好。