Ios 我连接了segue,但数据值没有输入。[快速]

Ios 我连接了segue,但数据值没有输入。[快速],ios,segue,Ios,Segue,小心!!!!这篇文章附有许多图片,以便于理解。对于由此造成的不便,我们深表歉意。我试着自己解决了几天,但解决不了,所以我把它贴了出来。很抱歉我真的不知道问题出在哪里 我在ViewController中插入了Container视图,并将Container视图嵌入TableViewController 我将附上一个简单的示例图片,以便于理解 在我正在制作的项目中,我必须使用主页上的segue移动屏幕。但是,即使正确输入了序列名称、TableViewController和TableViewCell名称

小心!!!!这篇文章附有许多图片,以便于理解。对于由此造成的不便,我们深表歉意。我试着自己解决了几天,但解决不了,所以我把它贴了出来。很抱歉我真的不知道问题出在哪里

我在
ViewController
中插入了
Container视图
,并将
Container视图
嵌入
TableViewController

我将附上一个简单的示例图片,以便于理解

在我正在制作的项目中,我必须使用
主页上的segue移动屏幕。但是,即使正确输入了
序列名称
TableViewController
TableViewCell
名称,
数据值
也不会通过。我以前自己解决过这个问题。但在主页上,我不知道原因是什么,但它不起作用。任何帮助都将不胜感激

mycode(视图控制器)

RankTableVC

RankTableViewCell

jsonCode


让我猜猜看<真正调用的是code>rankTableVC.rank=rankValue
(您可以使用断点或打印进行检查)
self.rankValue=rankValue
也被真正调用。但是
getRankList(){}
是异步的,因此如果添加打印
print(“getRankList中的排名:\(self.rankValue)
,就在
self.rankValue=rankValue
行之前,并添加
print(“在segue中:\(rankValue)”)
rankTableVC.rank=…
之前,您应该在
prepareforsgue()中看到问题:rankValue`
code为nil,否?它是在另一个添加的打印之前还是之后调用的?您认为应该先打印哪一个?加载视图控制器时,将触发嵌入序列,但从网络获取
rankValue
需要时间。您需要在属性中保存对嵌入式视图控制器的引用,以便设置
rankValue
并在网络操作完成后重新加载tableview。我无法回答,因为没有通知。如果先执行segue,然后执行网络,则
ViewController
会立即执行。如果将网络值放入
函数中,则会执行网络,并且segue值已传递?-Paulw11Larme,我尝试了你告诉我的方式,但我不确定我是否还没有完全理解它。
self.rankValue=rankValue
此代码已指定并打印(“在segue内:\(rankValue)”)
与我发布的问题相同,数据没有通过。Paulw11所讨论的
函数是
ex)let test:Void=({()->Void in print(“”})()。
import UIKit

class ViewController: UIViewController {
   
    var rankValue: [BoardRank]?

    override func viewDidLoad() {
        super.viewDidLoad()
        
    NetworkHandler.getRankList() { rankValue in  // Code to load api value
        self.rankValue = rankValue               // Code to load api value
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "rankSegue" {
            let rankTableVC = segue.destination as! RankTableVC
            rankTableVC.rank = rankValue
    }
}