2016-03-25 6 views
1

これは私のコードです。unwind segueを作成できません

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) 


     } 
    } 

} 

私は、アンワインドセグエを作成しようとしていますが、私はこれらの行でエラーが発生します:

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

最初の行のエラー:

'count' is unavailable

セカンドラインのエラー:

Cannot use mutating member on immutable value: 'jot' is a let constant

これはレットコンスタではありませんnt。私はそれを変数( 'var')として宣言しました。

3行目のエラー:

Type 'jotTableViewCell' has no member 'insertRowsAtIndexPaths'

私を助けてください。私はSwiftプログラミング言語の新機能です。あなたはノブ/初心者だと言えるでしょう。これは経験豊富なプログラマーのための非常に単純な修正のように思えます。あなたの時間をありがとう。

答えて

0

私はあなたに何をしようとしているのかは分かりませんが、jotの型はStringであり、Stringsは "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 { 

    } 
} 

だからあなたは定数として宣言されていると言って同じことを意味するカンマ区切りの宣言を持っています。迅速な変数の宣言の詳細については、hereを参照してください。

UITableViewのインスタンスでUITableViewCellのサブクラスのクラスメソッドではなく、insertRowsAtIndexPathsを呼び出す必要があります。例:

self.tableView.insertRowsAtIndexPaths([indexPath]) 
+0

おそらく私は十分ではありませんでした。このボタンをタップすると、元の画面に戻り、入力されたものがテーブルに追加されますビュー。 – user3003189

関連する問題