我将ViewController用于iOS和tvOS目标,而iOS则使用UIPickerView。
class FirstViewController: UIViewController,
UITableViewDataSource, UITableViewDelegate,
UITextFieldDelegate,UIWebViewDelegate,
UIPickerViewDataSource, UIPickerViewDelegateUIPickerViewDataSource和UIPickerViewDelegate在tvOS上不可用,我只在iOS上使用它们,但当我试图为tvOS构建时,错误UIPickerViewDelegate不可用。
是否有办法只为UIPickerViewDataSource和UIPickerViewDelegate应用程序提供服务,并在为tvOS构建时将它们排除在外?
发布于 2017-03-09 09:35:53
这是一种方法
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..
}https://stackoverflow.com/questions/42691332
复制相似问题