こんにちは。UIDatepickerで設定し取得した時間の値を用いて、その時間に通知を送りたいです。でも、UIDatepickerで取得できる値は例えば「15時30分」に設定したら「15:30」という値で取得すると思います。これを通知する時間に設定する場合、「15」という時の値と「30」という分の値としてそれぞれ切り分けて扱いたいのですがそのやり方がいまいちわかりません。どうかご教授お願いしますm(_ _)m
以下は現状のソースコードです。
swift
1import UIKit 2 3class ViewController: UIViewController, UIPickerViewDelegate { 4 private var myTextField: UITextField! 5 6 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 let now = NSDate() 11 println(now);// -> 2015-09-15 23:06:47 +0000 12 let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian) 13 var comps:NSDateComponents = calendar!.components(NSCalendarUnit.HourCalendarUnit|NSCalendarUnit.MinuteCalendarUnit|NSCalendarUnit.SecondCalendarUnit,fromDate: now) 14 comps.calendar = calendar; 15 16 17 comps.hour = 15; //ここの15と30に、datepickerで取得した値を持っていきたい。 18 comps.hour = 30; // 19 20 21 22 let now2 = comps.date; 23 println(now2);// -> Optional(0000-12-31 22:47:48 +0000) 24 var notification = UILocalNotification() 25 notification.alertBody = "test" 26 notification.timeZone = NSTimeZone.defaultTimeZone(); 27 notification.fireDate = now2; 28 notification.repeatInterval = NSCalendarUnit.CalendarUnitDay; 29 UIApplication.sharedApplication().scheduleLocalNotification(notification) 30 31 32 self.view.backgroundColor = UIColor.whiteColor() 33 34 // DatePickerを生成する. 35 let myDatePicker: UIDatePicker = UIDatePicker() 36 37 // datePickerを設定(デフォルトでは位置は画面上部)する. 38 myDatePicker.frame = CGRectMake(0, 50, self.view.frame.width, 200) 39 myDatePicker.timeZone = NSTimeZone.localTimeZone() 40 myDatePicker.backgroundColor = UIColor.whiteColor() 41 myDatePicker.layer.cornerRadius = 5.0 42 myDatePicker.layer.shadowOpacity = 0.5 43 44 // 値が変わった際のイベントを登録する. 45 myDatePicker.addTarget(self, action: "onDidChangeDate:", forControlEvents: .ValueChanged) 46 47 // DataPickerをViewに追加する. 48 self.view.addSubview(myDatePicker) 49 50 // UITextFieldを作成する. 51 myTextField = UITextField(frame: CGRectMake(0,0,200,30)) 52 myTextField.text = "" 53 myTextField.borderStyle = UITextBorderStyle.RoundedRect 54 myTextField.layer.position = CGPoint(x: self.view.bounds.width/2,y: self.view.bounds.height - 100); 55 56 println(cnt) 57 58 // UITextFieldをViewに追加する. 59 self.view.addSubview(myTextField) 60 } 61 62 /* 63 DatePickerが選ばれた際に呼ばれる. 64 */ 65 internal func onDidChangeDate(sender: UIDatePicker){ 66 67 // フォーマットを生成. 68 let myDateFormatter: NSDateFormatter = NSDateFormatter() 69 myDateFormatter.dateFormat = "HH:mm" //"yyyy/MM/dd hh:mm" 70 71 // 日付をフォーマットに則って取得. 72 let mySelectedDate: NSString = myDateFormatter.stringFromDate(sender.date) 73 myTextField.text = mySelectedDate as String 74 println(mySelectedDate) 75 var hour = mySelectedDate 76 } 77 78 override func didReceiveMemoryWarning() { 79 super.didReceiveMemoryWarning() 80 } 81 82} 83 84 85
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。