我正在为 iOS 和 tvOS 目标使用 ViewController,对于 iOS,我使用 UIPickerView。
class FirstViewController: UIViewController,
UITableViewDataSource, UITableViewDelegate,
UITextFieldDelegate,UIWebViewDelegate,
UIPickerViewDataSource, UIPickerViewDelegate
UIPickerViewDataSource 和 UIPickerViewDelegate 在 tvOS 上不可用,我只在 iOS 上使用它们,但是当我尝试为 tvOS 构建时出现错误UIPickerViewDelegate 不可用。
有没有办法只为 iOS 应用程序包含 UIPickerViewDataSource 和 UIPickerViewDelegate 并在为 tvOS 构建时排除它们?
最佳答案
这是一种方法
class Test : UIViewController, UIPickerViewDelegate{
}
#if os(iOS)
extension Test : UIPickerViewDelegate{
//delegate code goes here!
}
#endif
但是如果您需要委托(delegate)代码在类中,我建议创建一个没有 UIPickerViewDataSource 和 UIPickerViewDelegate 的父类(super class),并将其添加到子类中
SuperFirstViewController
|
|
/\
/ \
/ \
/ \
tvOS iOS - FirstViewController
或在代码中
class Test : ViewController{
//some code..
}
class iOSTest : Test, UIPickerViewDelegate{
//some code..
}
class tvOSTest : Test{
//some code..
}
关于ios - iOS 和 tvOS 应用程序上的相同 viewController,UIPickerViewDelegate 在 tvOS 上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42691332/