首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同的viewController在iOS和tvOS应用程序上,UIPickerViewDelegate在tvOS上不可用

相同的viewController在iOS和tvOS应用程序上,UIPickerViewDelegate在tvOS上不可用
EN

Stack Overflow用户
提问于 2017-03-09 09:21:19
回答 1查看 181关注 0票数 0

我将ViewController用于iOS和tvOS目标,而iOS则使用UIPickerView。

代码语言:javascript
复制
class FirstViewController: UIViewController,
    UITableViewDataSource, UITableViewDelegate, 
    UITextFieldDelegate,UIWebViewDelegate,
    UIPickerViewDataSource, UIPickerViewDelegate

UIPickerViewDataSource和UIPickerViewDelegate在tvOS上不可用,我只在iOS上使用它们,但当我试图为tvOS构建时,错误UIPickerViewDelegate不可用。

是否有办法只为UIPickerViewDataSource和UIPickerViewDelegate应用程序提供服务,并在为tvOS构建时将它们排除在外?

EN

回答 1

Stack Overflow用户

发布于 2017-03-09 09:35:53

这是一种方法

代码语言:javascript
复制
class Test : UIViewController, UIPickerViewDelegate{

}
#if os(iOS)
extension Test : UIPickerViewDelegate{
    //delegate code goes here!   
}
#endif

但是,如果您需要委托代码在类中,我建议您创建一个没有UIPickerViewDataSource和UIPickerViewDelegate的超类,并将其添加到子类中。

代码语言:javascript
复制
 SuperFirstViewController
           |
           |
           /\
          /  \
         /    \
        /      \
      tvOS    iOS - FirstViewController

或在代码中

代码语言:javascript
复制
class Test : ViewController{
    //some code..
}
class iOSTest : Test, UIPickerViewDelegate{
    //some code..
}
class tvOSTest : Test{
    //some code..
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42691332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档