0
我有控制器A推动控制器扫描代码。扫描代码时,它使用代理将字符串发送回控制器A.稍后,扫描控制器将被调用。目前没有问题。代表发送回值并推送弹出视图控制器
但是在控制器A的委托中,我需要检查结果并使用这些数据。在某些情况下,必须按下另一个控制器B.这不起作用。屏幕停留在扫描控制器上,它只闪烁1秒或更少。
据我所知,委托人在扫描控制器在屏幕上时按下控制器B,此后扫描控制器调用弹出。
我有这个在我的扫描控制器:
if ([self.delegate respondsToSelector:@selector(QrcodeHasFound:)]) {
[self.delegate QrcodeHasFound:[metadataObj stringValue]];
}
[self.navigationController performSelectorOnMainThread:@selector(popViewControllerAnimated:) withObject:nil waitUntilDone:NO];
而这在我的委托:
- (void)QrcodeHasFound:(NSString *)value{
// do some data use
ArticleController *mController = [self.storyboard instantiateViewControllerWithIdentifier:@"articleController"];
[self.navigationController pushViewController:mController animated:YES];
}
应该如何解决这个问题?
随着你的代码,屏幕不再闪烁,我可以看到代表呼叫控制器B,但直接回到扫描控制器。如果我倒过来两行有第一popViewControllerAnimated并调用委托后,它工作正常。但是我不知道在这之后是否可以调用委托。 – Kamax 2014-09-30 23:03:10
这将是完全安全的。关于订购的好的观察 - 很高兴能解决你的第二个问题。 – 2014-09-30 23:32:24