2017-05-27 19 views
0

可以在下面的for循环中执行segue,或者我正在设置自己的麻烦吗?可以在for循环中执行segue吗?

或者它只是简单地执行segue,其余的代码永远不会执行?

for(symbol in results) { 

      if ([symbol.data hasPrefix:@"--"]) { 
       actualBarCodeStr = [symbol.data substringFromIndex:2]; 
       [self performSegueWithIdentifier:@"trListViewToTrSearchView" sender:self]; 
      } else { 

      createTransactionResult = [NWBarCodeHelper createTransactionRowFromBarCode:symbol.data]; 

      if ([NWTillHelper isDebug] == 1) { 
       NSLog(@"Zbar delegate holds barcode: %@", symbol.data); 
       if(createTransactionResult != 0) { 
         NSLog(@"TransactionListView:ZBarDelegate:createTransactionFrombarCode failed with errorCode %i", createTransactionResult); 
       } 
      } 
     } 
    } 
+0

如果赛格没有动画,它可能会很好。通过动画,控制器可能会以未定义的状态结束。仍然不是你应该做的。 – Sulthan

+0

那么我在这里有什么选择?我必须运行for循环才能获取数据,在performSegue后可以直接断开吗?或者我该做些什么,设置一个标志并在方法中进一步执行下一步?一旦我清除了for循环? –

回答

1

由于代码是一个方法,它们将全部在一个runloop运行,即使您已经执行了第一SEGUE。因此,所有的赛格将被执行。如果这只是一个推动,我认为会推出一堆视图控制器。对于像莫代尔这样的情况,我认为它可能会崩溃,但我没有测试过它。