【发布时间】:2022-01-05 14:19:52
【问题描述】:
我正在尝试使用 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 传递数据的延迟?谢谢。
【问题讨论】:
-
您如何/在哪里处理
OrderListViewController中的theStoreId? -
是的,StoreId在OrderListViewController的h文件中
-
是的,但是在
OrderListViewController的生命周期中,您使用它知道它仅在第二次打开后出现? -
啊,是的,
self.setStoreId.text = [self.theStoreId valueForKey:@"storeId"];我使用它是为了将标签设置为商店 ID。这是否回答你的问题?对不起,我才刚刚开始。 -
差不多。你在
OrderListViewController中的哪个函数中设置它?
标签: ios objective-c xcode segue