【问题标题】:Same viewController on both iOS and tvOS apps, UIPickerViewDelegate not available on tvOSiOS 和 tvOS 应用程序上的相同 viewController,UIPickerViewDelegate 在 tvOS 上不可用
【发布时间】:2017-03-09 09:21:19
【问题描述】:

我对 iOS 和 tvOS 目标都使用 ViewController,而对于 iOS,我使用 UIPickerView。

class FirstViewController: UIViewController,
    UITableViewDataSource, UITableViewDelegate, 
    UITextFieldDelegate,UIWebViewDelegate,
    UIPickerViewDataSource, UIPickerViewDelegate

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

有没有办法只为 iOS 应用程序包含 UIPickerViewDataSource 和 UIPickerViewDelegate 并在为 tvOS 构建时排除它们?

【问题讨论】:

    标签: ios swift tvos


    【解决方案1】:

    这是一种方法

    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..
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      相关资源
      最近更新 更多