【问题标题】:How to pass data without the use of a segue如何在不使用 segue 的情况下传递数据
【发布时间】:2015-12-22 04:40:04
【问题描述】:

最近我一直在制作一个应用程序,您可以在其中创建和测验自己的定义或任何与此相关的内容。在用户点击创建按钮以制作新记事卡的标题后,我将数据传递到下一个视图。我现在使用的代码是:

 override  func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

let DestViewController: Card1 = segue.destinationViewController as! Card1

DestViewController.Content = Notetitle.text!


self.saved = self.Notetitle.text!


}

所有这些都有效,但只有当我在viewcontrollers 之间有一个segue 时它才会有效。我需要能够在没有转场的情况下传递该数据,因为我希望用户能够创建任意数量的记事卡,而我现在尝试这样做的方式是使用此代码制作UIView 然后放入新数据(主视图)。只能使用IBAction 创建新视图。我不能在IBAction 中使用为segue 做准备,因为它是它自己的覆盖函数。

这是我用来制作新视图的代码:

let newCard =
    self.storyboard!.instantiateViewControllerWithIdentifier("Main")

self.presentViewController(newCard, animated: true, completion:nil)

我希望我能够创建一个新视图,然后将用户刚刚在记事卡上制作的数据传入数据。 (希望这有任何意义)

主要主题: - 创建新视图并传入新数据 问题:可以在没有segue的情况下传递数据没有:/ - 能够在视图控制器之间传递数据而无需 segue :)

我大约 5 个月是新手。我所有的代码都很快。请放轻松。如有任何问题或 cmets,请随时问我。

谢谢, 卢卡斯·马扎

【问题讨论】:

  • 与其为每张新“卡片”实例化一个新的视图控制器,为什么不设计应用程序以便只有一个视图控制器(例如“CardViewController”)可以为每张卡片重复使用。当用户想要更换卡片时,您可以为视图设置动画以使其看起来像是在变化,即使在幕后它只是一个控制器。只是一个想法。
  • 这是一个好主意,感谢您的想法将尝试一下@gmat1014
  • @matt 有什么建议吗?
  • @Duncan C 有什么建议吗?

标签: ios iphone swift uiviewcontroller uistoryboard


【解决方案1】:

我想它会对你有所帮助。

let newCard =
self.storyboard!.instantiateViewControllerWithIdentifier("Main") as? DestViewController
newCard.Content = Notetitle.text!
self.presentViewController(newCard!, animated: true, completion:nil)

【讨论】:

  • 我在 DestViewController 下得到一个错误:us of undeclared type 'DestViewController' @Paruru
  • 我认为错误来自没有 segue。我确实想要,但它仍然需要工作。
  • 谁能帮帮我
  • @MazzaMan 我有一个类型转换的错误,“instantiateViewControllerWithIdentifier”返回一个 UIViewController,但我们需要 DestViewController,所以使用 'as?'转换它。请参阅我的编辑答案。顺便说一句,如果我做这项工作,我会在控制器之间做一个 segue,而不是使用 IBAction,所以当你想显示 DestViewController 时,只需调用方法 performThe Segue “performSegueWithIdentifier”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多