ios - 如何快速将数据从视图控制器传递到容器视图
问题描述
这是我的屏幕......
我想将数据从离线视图控制器传递到 InstantVC。我不知道该怎么做。基本上,我已经分段控制器。当用户选项卡 Instant 它显示分段视图控制器并隐藏调度视图控制器。并根据选定的分段传递数据。
这是传递数据的离线视图控制器
switch response.result {
case .success:
if let result = response.data {
do {
let resultIs = try JSONDecoder().decode(GetActiveOrderModel.self, from:result)
print("Massage: \(resultIs.state)")
if let results = resultIs.orderData{
let storyboard = UIStoryboard(name: "Rider", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "instantVC") as! InstantVC
print(" Order ID is \(results.orderId)")
vc.arryOfOrder.append(results.orderId!)
//navigationController?.pushViewController(vc, animated: true)
}
} catch {
print(error)
}
}
case .failure(let error):
print(error)
}
这是来自离线 VC 的不稳定数据的即时视图控制器
var arryOfOrder = [Int]()
override func viewDidLoad() {
super.viewDidLoad()
print("---------->>>>>>>>> \(arryOfOrder)")
}
// MARK: - Custom Functions
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arryOfOrder.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! CellForInstantVC
cell.orderNum.text = "\(arryOfOrder[indexPath.row])"
return cell
}
func addOrderNumber(orderNumber : Int){
arryOfOrder.append(orderNumber)
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 120
}
解决方案
您可以使用 prepare Segue 访问 Container 控制器并保存其引用
class Master: UIViewController, ContainerToMaster {
@IBOutlet var containerView: UIView!
var containerViewController: Container?
@IBOutlet var labelMaster: UILabel!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "containerViewSegue" {
containerViewController = segue.destinationViewController as? Container
}
}
然后你可以containerViewController
用来传递数据
containerViewController?.arryOfOrder = ArrayOfOrder
或者你可以在容器中有函数......将 ArrayOfOrder 传递给那个函数......这也将重新加载 tableView
containerViewController?.updateData(dataArray: ArrayOfOrder)
推荐阅读
- asp.net - 如何将列表从视图发送到控制器(ASP.NET MVC)?
- php - 无法使用 PDO 使用 php 连接到 Access 数据库(无密码)
- r - 修改汇总输出
- typescript - 告诉 TypeScript 应该允许用任意类型实例化 T
- android - 比较内置的`setOf`和Android的`keySet`?
- reactjs - onkeydown 在带有 url 的新窗口上不起作用
- php - 如何在 PHP 中验证空且正确的选择选项
- python - 字典中上一个和下一个值的平均值
- php - Microsoft Graph API - 搜索多个电子邮件地址?
- arrays - Flutter:如何 JSON 解析列表内的对象内的对象