ios - 将数据从 TableView Controller 传递到选项卡 View 中包含的另一个 View Controller ?

标签 ios swift

所以,截至目前,我对 Swift 的理解是,为了从一个 View 转换到另一个 View ,实现它的方法是使用 segues。但是,在我的应用程序中,我有一个 TableView ,其中显示了用户可以与之交互的项目列表,这样做会将这些项目移动到我的应用程序中包含在选项卡栏中的另一个 View Controller 。

class JobCompletedTableViewController: UITableViewController {

    // MARK: Properties
    var jobsCompleted = [Job]()
    var jobsChosen = [Job]()

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let share = UITableViewRowAction(style: .normal, title: "Share") { action, index in
            // Add data to the array created locally
            self.jobsChosen.append(self.jobsCompleted[indexPath.row])
        }

        share.backgroundColor = UIColor.blue

        return [share]
    }
     // Need some sort of method to pass data into other view 
     //controller if tab button is clicked
}

嵌入在导航 Controller 和标签栏 View Controller 中的 TableView 。

class ChosenTableViewController: UITableViewController {

    // MARK: Properties
    var jobsChosen = [Job]()

    // Upon initalization of this view, this array should be populated with data passed from the above view controller
}

对于这个问题,我最初的想法是简单地在 View Controller 中创建一个数组来跟踪用户与列表项的交互。然后将用户与之交互的项目添加到数组中。当用户单击选项卡栏中的项目时,实例化另一个 TableView Controller ,它显示用户与之交互的所有项目。

如果您愿意了解如何实际实例化 ChosenTableViewController 类的实例,我将不胜感激,该类将包含用户与之交互的所有项目列表。

Storyboard,让您了解“我的应用”的外观及其包含方式 enter image description here

最佳答案

由于它们不需要持久化,最简单的解决方案是使用一个单例,它将选定的作业保存在一个数组中,您可以在电子邮件 VC 出现时从中检索该数组。

final class SelectedJobs {

static let shared = SelectedJobs()

var jobsArray = [Job]()
}

然后在邮件VC中:

 class EmailVC: UIViewController {
    var selectedJobs = [Job]()

    override func viewWillApear(_ animated: Bool) {
    super.viewWillAppear(animated)

         for job in SelectedJobs.shared.jobsArray {
         selectedJobs.append(job)
         }

        self.tableView.reloadData()
   }

}

关于ios - 将数据从 TableView Controller 传递到选项卡 View 中包含的另一个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40325949/

相关文章:

ios - 如何删除所有 UserDefaults 数据? - swift

ios - Swift - JSON 字符串打印\n 而不是换行

swift - swift 中托管对象变量条件赋值的快捷方式

ios - NSDate 比用户本地时间晚一小时

android - Sencha Touch 2 - 旋转木马仅在构建后卡在第一个面板上

ios - 在 Alamofire 中一次只处理一个请求?

ios - Xcode View 层次结构调试 View 中的灰色约束是什么?

ios - 获取用户位置和更新

ios - additionalSafeAreaInsets 的奇怪行为

ios - 在 IOS 上向 NumberPad 添加下一步/完成按钮?