【发布时间】:2013-12-11 17:46:01
【问题描述】:
我有视图控制器 A (VCA) 和视图控制器 B (VCB)。 VCA 从 API 调用中提取数据并使用返回的数据填充标签等。
当检索到这些数据时,我希望能够将其中的一些传递给 VCB,而无需转换到 VCB。当需要“去”到 VCB 时,我希望数据已经存在。
目前我有两个视图控制器通过呈现和呈现的模态视图链接。这很好用,当我展示 VCB 时,我会从 VCA 发送数据。但是,从 UI/UX 的角度来看,我正在切换到滑动面板视图。所以你从VCA开始,然后可以向左滑动,从右边滑入VCB。
由于滑动,您可以同时看到两个视图控制器,这就是为什么我希望 VCB 在视觉上已经完成。
我当前在 VCA 中的代码是在双击手势识别器上调用的:
- (void)showDetailView
{
// Initialize VCB
ViewContollerB *vcb = [[ViewContollerB alloc] init];
// ················································
// Pass data to ViewContollerB
// ················································
vcb.currently = currently;
vcb.hourly = hourly;
vcb.daily = daily;
vcb.unitTemp = unitTemp;
vcb.currentLocationCity = currentLocationCity;
vcb.currentLocationRegion = currentLocationRegion;
vcb.currentTemp = currentTemp;
// Set transition style to cross fade
vcb.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
// Present the daily details
[self presentViewController:vcb animated:YES completion:nil];
}
就像我之前说的,这很好用。
在接收端(VCB),我在- (void)viewWillAppear:(BOOL)animated中有这样的东西
if (currentTemp) {
// Displays data from passed variables
[self displayHeaderInfo];
}
我想做的基本上是在 VCA 中做的:
// PRETEND DATA RETURNED FROM API CALL IN VCA
if (currentTemp) {
// Set array for VCB
vcb.currentTemp = currentTemp;
**** CODE TO SEND THIS TO VCB ****
**** BUT NOT GO TO VCB, STAY ****
**** RIGHT HERE IN VCA. ****
// Display in VCA
[self displayCurrentTemp];
}
这可能吗?
【问题讨论】:
-
为什么不直接删除
[self presentViewController:vcb animated:YES completion:nil];这一行? -
这一行:vcb.currentTemp = currentTemp;表明您已经知道如何将数据传递给 vcb。所以你的问题不是很清楚......
-
是的,我可以通过。但是我需要数据在准备好后静默传递,而不是基于任何用户交互或事件。那有意义吗?似乎下面的答案是要走的路。我会尝试并报告。
标签: ios objective-c uiviewcontroller