Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 624 - CoreDataDemo3 - 6

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メソッドの説明は明日。