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