所以,这是我的代码。
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编程语言的新手,你可以说我是一个菜鸟/新手。对于经验丰富的程序员来说,这似乎是一个非常简单的修复,而不是我。谢谢你的时间。
答案 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])