我正在嘗試使用 segue 將 storeId 傳遞給另一個 viewController,但是,傳遞資料時似乎有延遲?資料一開始是“nil”,我必須再次點擊它才能傳遞正確的資料。
這是我的代碼
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.passStoreData = self.storeList [indexPath.row];
self.passStoreId = [self.storeList [indexPath.row] valueForKey:@"storeId"];
self.passStoreName = [self.storeList [indexPath.row] valueForKey:@"storeName"];
NSString *store = [NSString stringWithFormat:@"%@ : %@", self.passStoreId, self.passStoreName];
[self.storeButton setTitle:[NSString stringWithFormat:@"%@", store] forState:UIControlStateNormal];
storeTable.hidden = YES;
[self performSegueWithIdentifier:@"showOrder" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
OrderListViewController *orderListVc = [segue destinationViewController];
orderListVc.theStoreId = self.passStoreData;
}
我該怎么做才能避免使用 segue 傳遞資料的延遲?謝謝你。
uj5u.com熱心網友回復:
到您呼叫 時[segue destinationViewController],OrderListViewController已加載并準備好使用。因此viewDidLoad,在您設定之前,任何代碼都已經被呼叫theStoreId。
將您的視圖設定代碼移動到viewWillAppear:它應該可以作業。
uj5u.com熱心網友回復:
經過嘗試和研究。我找到了這個問題的答案。
我曾經dispatch_async(dispatch_get_main_queue()在主執行緒上運行它,并且通過 segue 傳遞資料沒有延遲。謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/372461.html
