• Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
  • Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
  • Table View実装チュートリアルをXcode7.2.1で解説
  • Core Data シンプルチュートリアル
  • 私の本業、オフィシャルなブログ-> Life-LOG

CoreDataとTable Viewとの親和性の高さを説明するためのDemoプロジェクトを書いています。このプロジェクトは後で説明するNSFetchedResultsControllerの説明に繋がるものなのでしっかり理解する必要があります。

バーボタンアイテムの「Add」からコード化した@IBActionの「addNewStudent」メソッドをコードします。

@IBAction func addNewStrudent(sender: AnyObject) {
  let alert =
    UIAlertController(title: "Add Student", message: "Add New Student",
              preferredStyle: .Alert)
        
  let save = UIAlertAction(title: "Save", style: .Default) { 
    (action: UIAlertAction) -> Void in
      let textField = alert.textFields![0] as UITextField
            
      self.saveStudent(textField.text!)
// これはカスタムメソッドです。まだ説明していません。
            
      self.myTableView.reloadData()
  }
        
  let cancel = UIAlertAction(title: "Cancel", style: .Default) { 
     (action: UIAlertAction) -> Void in
            
  }
        
  alert.addTextFieldWithConfigurationHandler { 
     (textField: UITextField) -> Void in
      }
        
  alert.addAction(save)
  alert.addAction(cancel)
        
  presentViewController(alert, animated: true, completion: nil)
}

UIAlertControllerを使って新しいアイテムをデータベースに書き込むステップです。このコードが分からなければ次のエントリーで復習する必要があります。
yataiblue.hatenablog.com
ここで私の知らなかった新しいメソッドがありました。Alert表示の真ん中に入力を受け付けるテキストフィールドを登録するコードです。

  • addTextFieldWithConfigurationHandler

これを加えると次のように表示されます。

f:id:yataiblue:20160324143701j:plain

saveアクションを使って、このテキストフィールドの内容をカスタムメソッドである「saveStudent」に渡します。

saveStudentメソッドの説明は明日。