我的应用程序中有一个UIButton,当按下它时会显示下一个视图控制器。有时UI会锁定,应用程序会因后台进程冻结一会儿。当发生这种情况时,用户可能会多次点击该按钮,因为第一次点击时没有立即发生任何事情,当发生这种情况时,UINavigationController会再次推动ViewController多次,因此您必须多次返回才能获得回到家里。这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
self.pushVCButton.multipleTouchEnabled = NO;
}
- (IBAction)pushVCButtonPressed:(id)sender {
self.pushVCButton.enabled = NO;
ViewController *viewController = [[ViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
self.pushVCButton.enabled = YES;
}
如何让它永远不会推送多个viewController实例?
答案 0 :(得分:4)
你应该尝试让后台进程不在UI线程上运行,但是如果你不能尝试将按钮设置为yes,只有当视图消失或者听完推送动画时才会启用:
var xml = ‘<person id=”1234” age=”30”><name>John Doe</name></person>’;
var json = xml2json(xml);
console.log(json);
// prints ‘{“person”: {“id”: “1234”, “age”: “30”, “name”: “John Doe”}}’
还要确保不会再调用两次动作。