ios - 使用 segue 中的参数调用函数

标签 ios swift uitableview firebase segue

我有一个带有 TableView 的 FirstVC,它可以连接到另一个 SecondVC,我在其中传递按下的单元格的名称。在 SecondVC 中,我有另一个 TableView ,我想用数据填充它。我有一个名为 gettingUrls() 的函数,它正在为我的 TableView 提取数据:

DataService.instance.mainRef.child("Folders").child("\(folderName)").observeSingleEvent(of: .value) { (snapshot: DataSnapshot) in...}

其中“folderName”是来自 FirstVC 的值。这个功能被实现为“拉动刷新功能”并且效果很好。但是,当我尝试在 viewDidLoad 中运行该函数本身时,由于空的folderName值,它不断使应用程序崩溃。我只是不明白为什么此时 segue 的值在刷新函数中可用,而不在 viewDidLoad 中可用。

这是segue的代码:

let detailVC = self.storyboard?.instantiateViewController(withIdentifier: "DetailVC") as! DetailVC
        self.navigationController?.pushViewController(detailVC, animated: true)
        self.present(detailVC, animated: true, completion: nil)
        detailVC.folderName = fileName 

如何在 viewDidLoad 中运行该函数?

最佳答案

在设置 folderName 属性之前,您将显示 DetailVC 的 View 。 View 已加载,但还没有 folderName,因此程序崩溃。您应该在呈现 DetailVC 之前放置行 detailVC.folderName = fileName

您也不需要同时使用第二行和第三行 - 要么呈现新的 View Controller ,要么将其推送到导航堆栈上,而不是两者都需要。

关于ios - 使用 segue 中的参数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423709/

相关文章:

ios - 将对象添加到数组时如何运行getter方法?

ios - info.plist 中支持的接口(interface)方向似乎阻止了对 shouldAutorotate 的调用

ios - 试图获得一个按钮来打开 ios 上的日历。单击按钮时没有任何反应

swift - 如何处理导致 "try?"的 Swift 的 "Result of try? is unused"?

ios - 显示覆盖整个 UITableView 的标签

ios - 搜索栏不会出现在 ios 中

ios - UITableView 的水平移动?

arrays - 无法将数据输入到类模型(swift)

ios - 什么时候应该重新计算 UITableView 页脚的大小?

iphone - UITableViewCell backgroundView 在不应该被重用时被重用