2016-08-30 6 views
2

날짜 선택 도구에 대해 별도의 클래스를 만들었습니다. 내가신속하게 DatePicker에서 날짜/시간 가져 오기

let timePickerViewController = MYDatePickerViewController() 
presentViewController(timePickerViewController, animated: true, completion: nil) 

내가 선택한 날짜를 얻기 위해 노력하고 있어요 이제

enter image description here

를 다음과 같이 화면의 하단에서 현재처럼 다른의 ViewController에서 제시하고

import UIKit 

protocol MYDatePickerViewControllerDelegate { 
    func didFinishSelectingDate(selectedDate:NSDate) 
} 

class MYDatePickerViewController: UIViewController { 

    @IBOutlet weak var containerView: UIView! 
    @IBOutlet weak var datePicker: UIDatePicker! 
    @IBOutlet weak var navigationBar: UINavigationBar! 

    var datePickerDelegate : MYDatePickerViewControllerDelegate? 
    var customTransitioningDelegate: MYFadeInFadeOutTransitioning? = MYFadeInFadeOutTransitioning() 

    init(){ 
     super.init(nibName: "MyDatePickerViewController", bundle: NSBundle.mainBundle()) 

     transitioningDelegate = customTransitioningDelegate 
     modalPresentationStyle = .Custom 
    } 
    convenience init(withSelectedDate date: NSDate) { 
     self.init() 

    } 
    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
    deinit { 
     customTransitioningDelegate = nil 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     setupViewControllerUI() 
    } 

    func setupViewControllerUI() { 
     containerView.tag = kContainerViewTag 

    } 

    @IBAction func doneButtonTapped(sender: AnyObject) { 
     datePickerDelegate?.didFinishSelectingDate(self.datePicker.date) 
     print(self.datePicker.date) 
     dismissViewControllerAnimated(true, completion: nil) 
    } 
    @IBAction func cancelButtonTapped(sender: AnyObject) { 
     dismissViewControllerAnimated(true, completion: nil) 
    } 
} 

사용자가 datePicker에서 완료 버튼을 탭하면 그것을 위해 나는 대표자를 만들고 거기에서 날짜를 선택하려고 노력하고있다. 그러나 할 수 없었다. 나는 내 viewDidLoad에

let datePicker = YASDatePickerViewController() 
    datePicker.datePickerDelegate = self 

나의 기타의 ViewController에 MYDatePickerViewController의 대리자를 implemneted 다음

func didFinishSelectingDate(selectedDate: NSDate) { 
    print(selectedDate) 
} 

하지만 날짜를 받고 있지 않다, 나를 인도 해주십시오했다.

let timePickerViewController = MYDatePickerViewController() 
timePickerViewController.datePickerDelegate = self 
presentViewController(timePickerViewController, animated: true, completion: nil) 

을 그리고 당신의 프로토콜의 ViewController를 준수 :

답변

1

같은 다른의 ViewController에서 제시하지만이 시도

class ViewController: UIViewController, MYDatePickerViewControllerDelegate { 

나머지는 잘 보인다!

+0

이 선이 누락되었습니다. timePickerViewController.datePickerDelegate = self 정말 고마워요. – Byte