如何复制位于不同选项卡中的数组对象

Posted

技术标签:

【中文标题】如何复制位于不同选项卡中的数组对象【英文标题】:How to Copy Array Objects which are in Different Tabs 【发布时间】:2011-08-27 15:21:23 【问题描述】:

我在 FirstviewController 中有 NSMutable 数组。我想将该数组的对象复制到 SecondViewController 中的另一个 NSMUtable 数组。 但 FirstViewController 和 SecondViewController 位于不同的选项卡中(我的应用的 rootController 是 tabBarController )

注意:我知道它适用于 [self.navigationController pushViewController:firstViewController animated:YES]; 但是,当 viewController 位于不同的选项卡中时,我该怎么做呢?

请帮帮我。提前致谢。

【问题讨论】:

【参考方案1】:

有几种方法可以实现这种模式:

    委派。在这里,您可以通过将指针传递给一个视图控制器来了解另一个视图控制器。因此,您首先在某处创建控制器 1,然后在创建控制器 1 后,将控制器 1 告诉控制器 2,以便控制器 2 可以访问控制器 1 的公共实例变量 通知。您可以通过您将注册收听的通知系统发送对象。在这里,控制器 2 会监听控制器 1 在您需要时发送的特定通知。 全局变量。这是您存储数组 abject 的地方,不是在每个视图控制器中,而是在一个可供所有人访问的全局位置,例如 App Delegate 或根视图控制器。

还有更多的设计模式,但这些是此类设置的最佳选择。有关这些的更多信息,请查看 Apple 提供的Cocoa Fundamentals Guide

【讨论】:

非常感谢您的帮助。如果可以,请给出一个示例代码如何使用 NSNotifications。不管怎样,还是自己试试吧:) 我提供的链接提供了大量示例,通过 SO 搜索也可以这样做【参考方案2】:

在下面的代码中,drinkdetailViewController 类的数组,drinkscurrent 类的数组,我想从中导航到另一个类并希望在其他类上初始化数组...

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    detailViewController.drink = [self.drinks];
    [self.navigationController pushViewController:drinkDetailViewController animated:YES];
[detailViewController release];

【讨论】:

感谢您的帮助。是的,当使用 [self.navigationController pushViewController:drinkDetailViewController animated:YES] 时它会起作用; , 但就我而言,我不能使用它,因为我的视图控制器位于不同的选项卡中。我想我必须选择@coneybeare 提到的选项

以上是关于如何复制位于不同选项卡中的数组对象的主要内容,如果未能解决你的问题,请参考以下文章

使用Selenium框架,如何在现有选项卡中执行进程?

如何打开相邻选项卡中的第二个链接? [复制]

如何访问 QTabWidget 不同选项卡中的小部件?

如何检查是不是检查了不同选项卡中的每个复选框?

如何在不同 jquery ui 选项卡中的 gridviews 中使用 jquery Datatable 插件?

格式刷位于哪个选项卡