【问题标题】:Passing data from one view controller to another without using Segue在不使用 Segue 的情况下将数据从一个视图控制器传递到另一个视图控制器
【发布时间】:2012-11-27 20:38:58
【问题描述】:

我有一个UITableView(假设类“Parent”在视图“screen 1”中)。当我单击父单元格中的一个时,我正在显示另一个 UITableView(我们在视图“Screen2”中将其称为“子级”)。父母和孩子通过“segue”连接,我可以使用“segue”传递数据。

例如,父母有单元格 - “Cell1”,触摸“Cell1”,我得到“Cell11”,“Cell12”,“Cell13” [这是“screen2,表格查看对象”]。

现在,有一些与“Cell11”相关的描述(一旦我触摸了“Cell11”),我希望它在另一个视图控制器(“screen3”)中显示 Cell11 的描述。这里,为了在“screen2”和“screen3”之间传递信息,我宁愿不使用“Segue”

我该怎么做?

【问题讨论】:

  • 你,只需要维护带有属性的数组,在另一个类中,只需获取前一个类的对象,然后你可以从这个对象中检索数组。尝试维护你的数组,这样你就可以检索该值取决于 tableView Row 索引的索引。如果您希望此逻辑适用于多个类,则使用字典维护一个基类,并从该类(BaseClass)派生所有控制器,以及您需要在哪个控制器中存储值,只需维护数组并将该数组保存在基类字典中。:)
  • 我是这个开发的新手。我正在考虑相同的逻辑。但是在实施时遇到问题。请为此提供任何示例代码。谢谢
  • 如果你不想用segue来显示“screen3”,你打算怎么显示呢?
  • 没有Segue的任何其他方式。我参考了这个:leesilver.net/1/post/2011/08/…但是,实施后没有成功。
  • 当然,我会但还不是必须参加一些重要的会议。同时,你尝试,我希望你能做到。 :)

标签: iphone objective-c ios cocoa tableview


【解决方案1】:

您可以通过两种方式呈现新屏幕。

1) 使用界面构建器,您可以在此处使用 segue 将某些内容传递到新屏幕上。

2) 手动实例化,实例化后直接呈现即可。

考虑到你不想使用方法一,你可以像这样使用方法二:

ScreenBClass *screenB = [self.storyboard instantiateViewControllerWithIdentifier:@"screenB"];

screenB.objectPointerInOtherClass = self.objectIWantToPass;

[self screenB animated:YES];

【讨论】:

  • 你能把它转换成 swift 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
相关资源
最近更新 更多