ios - 如何禁用多次单击按钮?

标签 ios objective-c uitableview multi-touch

我有一个 UITableView:

单元格 1:按钮 1->按下以查看 Controller A

Cell 2: Button 2->push to view controller B

它工作正常。但是,当我尝试同时按住和按下两个按钮时,我的应用会收到以下警告:

nested push animation can result in corrupted navigation bar. Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

我应该如何禁用单元格上的多次单击按钮?

最佳答案

你只需要在推送到另一个 View Controller 时禁用按钮。 您可以创建 UINavigationController 类别以推送到另一个 View Controller 。确保在返回当前 viewController 之前启用按钮

@interface UINavigationController (CompletionHandler)

- (void)pushViewController:(UIViewController *)viewController
              animated:(BOOL)animated
            completion:(void (^)(void))completion;

@end




@implementation UINavigationController (CompletionHandler)
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^)(void))completion {
[CATransaction begin];
[CATransaction setCompletionBlock:completion];
[self pushViewController:viewController animated:animated];
[CATransaction commit];
}


@end

调用下面的代码推送到另一个ViewController

[self.navigationController pushViewController:ControllerObj animated:YES completion:^{
        btn.userInteractionEnabled = NO; // Your Button Object
        NSLog(@"COMPLETED");
    }];

关于ios - 如何禁用多次单击按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30251663/

相关文章:

objective-c - 将 CGPoint 转换为 NSValue

iphone - 如何将选定的 uitableviewcell 变量传递给以前的 View Controller ?

ios - 设置下载NSData的进度条

ios - plist 漏洞的类加载

ios - Xcode 10 : Load the same . 项目目标和单元测试目标中的xml文件

iPhone - 向 UITableView 添加新的部分和行

ios - 如何在 UITableViewCell 上添加 rss 图片

ios - 如何使用CALayer模糊图像

javascript - 将 AVVideoComposition 初始值设定项转换为 Nativescript

objective-c - 为什么 typedef 与枚举类型一起使用?