如何对我的 TODO 进行分类?

Posted

技术标签:

【中文标题】如何对我的 TODO 进行分类?【英文标题】:How can I categorize my TODOs? 【发布时间】:2018-05-21 12:02:47 【问题描述】:

首先我有两个 ViewController,我创建了一个 tableView,我可以在其中将文本插入到单元格中。 在 SecondViewController 中我也有一个具有相同功能的 tableView,但是我如何才能使当我单击第一个 tableView 中的一个单元格时,我可以进入一个单独的 SecondTableView(数组)。

所以我到此为止,但我认为分类函数必须在 didSelectRowAt 中,当我单击行时。

FirstViewController: todos: 这是一个字符串数组(我想要这个作为类别)

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    if segue.identifier == "hhh"
        //let destination = segue.destination as? UINavigationController
        let vc = segue.destination as? SecondViewController

    


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 

    let vc = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as? SecondViewController
    //label name

    vc?.name = todos[indexPath.row]
    self.present(vc!, animated: true, completion: nil)
    tableView.deselectRow(at: indexPath, animated: true)
    self.performSegue(withIdentifier: "hhh", sender: indexPath)

    let indexpath = todos[indexPath.row]
    print("indexpath:\(indexpath)")
    print("row: \(indexPath.row)")

    

在 SecondViewController 我有一个 SecondArray=[String]() 这些实际上是 Todos。

在两个 ViewController 上,我都可以插入带有文本的单元格,但不知道如何将数据传回:=?

【问题讨论】:

既然你用UITableView标记了这个,我可以放心地假设这是ios。您是否考虑过使用UISplitViewController 【参考方案1】:

在 cmets 中,我建议使用 UISplitViewController,因为这适用于任何类型的主/详细类型的应用程序。 (其实就是Xcode项目类型。)

但如果您需要使用 UINavigationController,这就是我要以这种方式在两个视图之间“切换”的方法:

FirstViewController:

@IBAction func showFrameVC() 
    updateMaskImage()
    self.performSegue(withIdentifier: "ShowSecondView", sender: self)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    if segue.identifier == "ShowSecondView" 
        if let vc = segue.destination as? FrameViewController 
            vc.someValue = someValue
            vc.firstVC = self
        
    

基本上,将第一个视图控制器的 instance 与您需要传递的任何数据一起传递。

SecondViewController:

var someValue:String!
weak var subjectVC:FirstViewController!

override func viewWillDisappear(_ animated: Bool) 
    super.viewWillDisappear(animated)
    if isMovingFromParentViewController 
        firstVC.someValue = someValue
    

在这里,您让导航控制器完成它的工作,即将第二个视图控制器从堆栈中弹出,将其更改的数据传回。由于您要维护第一个视图控制器的 weak 值,因此在释放第二个控制器时释放该内存。

【讨论】:

【参考方案2】:

在您的代码中,您在同一功能中以两种方式呈现您的 SecondViewController。

 self.present(vc!, animated: true, completion: nil)

 self.performSegue(withIdentifier: "hhh", sender: indexPath)

两行的意图相同,但有两种实现方式。 如果我的想法是正确的,您不必执行 segue(上面提到的第二行代码,也没有为 segue 方法做准备)。

【讨论】:

以上是关于如何对我的 TODO 进行分类?的主要内容,如果未能解决你的问题,请参考以下文章

我想在 sencha touch 中对我的商店进行分类,遇到问题

为序数神经网络编码我的多类分类问题

如何根据监督场景的多个特征的相关性进行分类

如何从单个输入值中获取分类报告

如何让朴素贝叶斯分类器工作?

如何优化推理脚本以获得更快的分类器预测?