我为iOS和tvOS目标使用ViewController,为iOS使用UIPickerView。
class FirstViewController: UIViewController,
UITableViewDataSource, UITableViewDelegate,
UITextFieldDelegate,UIWebViewDelegate,
UIPickerViewDataSource, UIPickerViewDelegate
UIPickerViewDataSource和UIPickerViewDelegate在tvOS上不可用,我只在iOS上使用它们,但我得到错误消息UIPickerViewDelegate在尝试为tvOS生成时不可用。
有没有办法只为iOS应用程序包含UIPickerViewDataSource和UIPickerViewDelegate,并在为tvOS构建时排除它们?
最佳答案
这是一种方法
class Test : UIViewController, UIPickerViewDelegate{
}
#if os(iOS)
extension Test : UIPickerViewDelegate{
//delegate code goes here!
}
#endif
但是如果您需要委托代码在类中,我建议您创建一个没有UIPickerViewDataSource和UIPickerViewDelegate的超级类,并将其添加到子类中
SuperFirstViewController
|
|
/\
/ \
/ \
/ \
tvOS iOS - FirstViewController
或在代码中
class Test : ViewController{
//some code..
}
class iOSTest : Test, UIPickerViewDelegate{
//some code..
}
class tvOSTest : Test{
//some code..
}