UINavigationController推送了几个相同的viewController

时间:2016-01-22 18:17:34

标签: ios objective-c iphone uinavigationcontroller

我的应用程序中有一个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实例?

1 个答案:

答案 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”}}’

还要确保不会再调用两次动作。