2015-10-29 15 views
5

Có cách nào để đặt bộ chọn ngày để hiển thị thời gian tải cụ thể không? Tôi có bốn trường hợp bộ chọn ngày được bắt đầu từ bốn trường văn bản cho Thời gian bắt đầu, Thời gian kết thúc, Ngày bắt đầu và Ngày kết thúc bằng cách sử dụng phân lớp squimer/datePickerDialog từ GitHub bật lên trong UIAlertView.Cách đặt thời gian mặc định cụ thể cho bộ chọn ngày trong Swift

Trong ứng dụng của tôi, thời gian bắt đầu mặc định là 7:00 sáng và thời gian kết thúc mặc định là 5:00 giờ chiều và cho phép người dùng điều chỉnh xung quanh những thời điểm đó.

Tất cả những gì tôi có thể thấy là bạn có thể đặt datePicker.defaultDate thành currentDate, minimumDate hoặc maximumDate và chỉ một lần. Có thể đặt defaultDate thành các chuỗi được mã hóa cứng của sTime = "07:00" và fTime = "17:00" trong các cuộc gọi của tôi từ ViewController không?

Mọi trợ giúp sẽ được đánh giá cao.

EDIT: Đây là cách tôi kêu gọi các lớp con từ tôi viewController

@IBAction func setFT(sender: UITextField) { 
    resignKeyboardCompletely(sender) 
    DatePickerDialog().show("Pick a Finish Time", doneButtonTitle: "Done", cancelButtonTitle: "Cancel", datePickerMode: .Time) { 
     (timeFinish) -> Void in 
     self.dateFormatter.dateFormat = "HH:mm" 
     let finTime = self.dateFormatter.stringFromDate(timeFinish) 
     self.finishTime.text = finTime 
    } 
    defaults.setObject(finishTime.text, forKey: "finishTime") 
    print(finishTime.text) 
} 

Lưu ý rằng trong suốt này tôi cũng đang cố gắng để duy trì bền bỉ qua Defaults NSUser.

+0

Trong một lớp con cần thiết cho bốn giá trị văn bản viewController? – user3118171

Trả lời

15

Bạn đang tìm cách đặt thời gian thông qua một chuỗi. Nếu đó là trường hợp bạn có thể sử dụng một trình định dạng ngày như thế này.

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "HH:mm" 

let date = dateFormatter.dateFromString("17:00") 

datePicker.date = date 

Thêm một init đến Picker class

init(time:String) { 
    super.init(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height)) 

    setupView() 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "HH:mm" 

    if let date = dateFormatter.dateFromString("17:00") { 
     datePicker.date = date 
    } 
} 
+0

Đó là loại điều tôi đã thử nghiệm nhưng tôi không chắc chắn làm thế nào để thực hiện nó. Đây là cách tôi đang gọi lớp con datePickerDialog.swift một cách dễ dàng. – user3118171

+0

@IBAction func setFT (người gửi: UITextField) { từ chứcKeyboardCompletely (người gửi) DatePickerDialog(). Hiển thị ("Chọn thời gian kết thúc", doneButtonTitle: "Done", cancelButtonTitle: "Cancel", datePickerMode: .Time) { (timeFinish) -> Void trong self.dateFormatter.dateFormat = "HH: mm" hãy finTime = self.dateFormatter.stringFromDate (timeFinish) self.finishTime.text = finTime } defaults.setObject (finishTime.text, forKey : "finishTime") print (finishTime.text) – user3118171

+0

đặt mã này trong viewDidLoad nếu bạn muốn datePicker của bạn bắt đầu tại thời điểm này ... Tôi không chắc chắn những gì bạn đang yêu cầu mặc dù. Bạn có lẽ nên cố gắng giải thích thêm một chút về những gì bạn đang cố gắng và chính xác những gì bạn đã thử đã thất bại – Moriya

Các vấn đề liên quan