无法创建展开segue

时间:2016-03-25 20:32:21

标签: ios swift

所以,这是我的代码。

import UIKit

class FirstViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate {
//MARK: PROPERTIES

    @IBOutlet weak var jotTextField: UITextField!
    @IBOutlet weak var saveButton: UIBarButtonItem!

    /*
    This value is either passed by `MealTableViewController` in `prepareForSegue(_:sender:)`
    or constructed as part of adding a new meal.
    */
    var jot: String?



//MARK: UITextFieldDelegate
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        // Hide the keyboard.
        textField.resignFirstResponder()
        return true
    }
    func textFieldDidEndEditing(textField: UITextField) {
       jotTextField.text = textField.text
    }

//MARK: Navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if saveButton === sender {
            var jot = jotTextField.text ?? ""
            jot = String(jotTextField)
        }

    }
    override func viewDidLoad() {
        super.viewDidLoad()

        // Handle the text field’s user input through delegate callbacks.
        jotTextField.delegate = self


    }



    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func unwindToJotList(sender: UIStoryboardSegue) {
        if let sourceViewController = sender.sourceViewController as? FirstViewController, jot = sourceViewController.jot {
            let newIndexPath = NSIndexPath(forRow: jot.count, inSection: 0)
             jot.append(jot)
              JotTableViewCell.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Bottom)


        }
    }

}

我正在尝试创建一个展开segue,但是,我在这些行上遇到错误:

let newIndexPath = NSIndexPath(forRow: jot.count, inSection: 0)
jot.append(jot)
JotTableViewCell.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Bottom)

第一行的错误:

  

'计数'不可用

第二行的错误:

  

不能在不可变值上使用变异成员:' jot'是一个让常数

这不是一个让它不变的。我将其声明为变量(' var')。

第三行的错误:

  

输入' jotTableViewCell'没有会员' insertRowsAtIndexPaths'

请帮帮我。我是Swift编程语言的新手,你可以说我是一个菜鸟/新手。对于经验丰富的程序员来说,这似乎是一个非常简单的修复,而不是我。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

我不清楚你要做什么,但是jot的类型是String,而字符串没有属性“count”。如果您想要jot具有的字符数,您可以尝试jot.characters.count

在行中:

if let sourceViewController = sender.sourceViewController as? FirstViewController, jot = sourceViewController.jot

你有一个逗号分隔的声明,这意味着它与说

相同
if let sourceViewController = sender.sourceViewController as? FirstViewController {
    if let jot = sourceViewController.jot {

    }
}

所以你宣称它是一个常量。有关在swift中声明变量的更多信息,请参阅here

您应该在UITableView的实例上调用insertRowsAtIndexPaths,而不是像您正在做的那样调用UITableViewCell的子类的类方法。例如:

self.tableView.insertRowsAtIndexPaths([indexPath])