ios - 在 View Controller 之间传输数据的新方法

标签 ios uiviewcontroller transfer

我在 UIViewController 之间传输数据时遇到问题,并且在之前的问题中找不到答案。

情况: 我有一个允许用户输入数据的第一个 viewController('CalViewController')。然后我用这些数据计算一个数字(例如名为“卡路里”)。接下来的 View 是在 TabBarController 中显示的两个 UIViewController(DrinksViewControllerFoodViewController),我需要“卡路里”的值'.

我尝试过的: -prepareForSegue 方法:它不起作用,因为 TabBarController 中的 segues( Storyboard中的符号是两点之间的链接)与其他方法不同( Storyboard中的符号是箭头)一扇门)。

-'didSelectViewController' 方法:此方法未“激活”以显示 TabBarController 的第一个 View 。所以我成功地将 Calories 传输到 TabBarController 中的第二个 ViewController(即 FoodViewController),但没有传输到 TabBarController 中的第一个 viewController(即 DrinksViewController ).

-调用“原始”值:这是我在 CalViewController 中所做的(在导入 DrinksViewController.h 之后)

DrinksViewController *dvc = [[DrinksViewController alloc] init]; 
dvc.caloriesImported = 456;

我不知道为什么这第三种方式不起作用。

问题:我的Calories 值没有从CalViewController 传输到DrinksViewControlller。有什么想法吗?

最佳答案

如果我正确理解你的问题,下面的应该首先工作 View Controller CalViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"yourSegueToTabBarIdentifier"]) {
        UITabBarController *tbc = [segue destinationViewController];
        DrinksViewController *dvc = tbc.viewControllers[0];
        dvc.caloriesImported = 456;
        FoodViewController *fvc = tbc.viewControllers[1];
        fvc.someProperty = someValue;
    }
}

注意

DrinksViewController *dvc = [[DrinksViewController alloc] init]; 
dvc.caloriesImported = 456;

无法工作,因为它分配了 DrinksViewController实例 与标签栏 Controller 使用的实例完全无关。

关于ios - 在 View Controller 之间传输数据的新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165514/

相关文章:

ios - 快速滑动手势识别器

ios - ViewController - (0,0) 处的主视图元素被导航栏遮挡

ios - UITableViewController 作为 subview 获取错误

android - 将图片从Android发送到PC上的Matlab

android - 安卓WIFI传输文件

ios - 删除键然后将其添加回来后,Firebase 子查询为零

ios - 如何从 UiTableViewController 访问自定义 UITableViewCell 上的属性?

ios - 如何初始化自定义 View ( Controller )以便它既可以编程方式又可以在 Interface Builder 中工作?

c - C 中的 Winsock 文件传输

ios - 添加彩色图像作为导航栏中的右侧栏按钮项