【问题标题】:Append flow from ViewController?从 ViewController 追加流?
【发布时间】:2020-08-18 20:21:01
【问题描述】:

我是 swift 和一般编程的新手,所以如果我解释得不好,我提前道歉。作为训练营的一部分,我正在一个遗留项目上实习。我正在尝试从显示在图像上的菜单视图导航到另一个屏幕。我想将图像数据的副本存储在一个数组中并将其带到下一个屏幕。如果可能的话。但我在点击创建订单按钮后收到此警告。我不确定如何实施控制台中建议的解决方案。如下;

`fileprivate func fillData() 轻按 id 为 nil 的消息。 idx = 无 来自 OrderCreateViewController 的附加流 附加并设置为当前控制器:可选(Bond_Agent.OrderCreateViewController) 创建订单: 消息:无 文件:[]

2020-08-18 14:00:26.107861-0400 Bond Agent[7867:5955978] 警告:尝试在 上显示 ,其视图不在窗口层次结构中!` the image and create order menu

如果需要更多上下文,请告诉我,提前感谢您的时间和帮助

【问题讨论】:

  • 能否提供fileprivate func fillData()的代码?

标签: ios swift view navigation


【解决方案1】:

据我了解,您尝试将图像存储在视图上并在您正在执行 segue 的另一个视图控制器中访问该图像数据。如果我的理解是正确的,那么您可以执行以下操作 假设您有 2 个 Viewcontrollers (MainVC),其中有图像和创建订单按钮,以及 (SecondVC) 将在单击“创建订单”时显示。因此,您希望在 SecondVC 中访问 MainVC 中的图像数据,然后您可以执行以下操作:

在 MainVC 中:

class MainVC : UIViewController {
   var imageData : NSMutableArray = []
   ....
   func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    ....
    imageData.add(<UImage>)
    return cell;
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.destination is SecondVC
        {
            let vc = segue.destination as? SecondVC
            vc?.imageDataArray = imageData
        }
    }
}

在 SecondVC.swift 中,您必须如下声明 imageDataArray,当您执行从 MainVC 到 SecondVC 的 segue 时,此 imageDataArray 现在将包含 MainVC 的所有 imageData 数组内容,您可以访问这些内容:

 class SecondVC : UIViewController {
     var imageDataArray : NSMutableArray = []
     ...
 }

【讨论】:

  • 该应用程序正在使用 .xib 文件进行视图,没有 main.storyboard 文件,并且导航是由流程协调员使用 UIResponder 执行的,我可以在旁边使用 segues 吗?抱歉,我不确定在这种情况下我是否可以使用您的建议,但很高兴知道未来的项目。谢谢 :) fileprivate func fillData() 正在填充聊天列表,从中选择 img 以创建订单。controlc.com/88eea563
猜你喜欢
  • 2023-03-22
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-04
  • 1970-01-01
  • 2013-04-26
  • 2014-08-12
  • 2016-07-31
相关资源
最近更新 更多