在Swift中返回新的ViewController

时间:2015-06-29 15:22:48

标签: swift researchkit

这是对此的跟进问题:Assign ViewController to Class or vice versa

所以我有一个名为SwipeStepViewController的ViewController,它是ORKActiveStepViewController的子类。在SwipeStep类中,我尝试使用自定义SwipeStepViewController覆盖默认的ViewController。

我试图覆盖+stepViewControllerClass  方法并在SwipeStep类中返回我的Custom Viewcontroller:     导入ResearchKit

class SwipeStep:ORKActiveStep{

    override func stepViewControllerClass(){
        return SwipeStepViewController.self
    }

}

但这根本不起作用。 我使用的是研究套件,但我想这是一个普遍的快速问题。

3 个答案:

答案 0 :(得分:1)

我没有使用ResearchKit的经验,但在看了Objective-C code后我相信你的方法应该是:

<tr ng-repeat="country in countries  | filter : { sign : currency || ''}">
                <td class="td-border">{{country.val}}</td>
            </tr>

解释您收到错误的原因:

  

Method不会覆盖其超类中的任何方法。

     

     

&#39; SwipeStepViewController.Type&#39;不能转换为&#39;()&#39;

查看您认为会覆盖的方法(由override class func stepViewControllerClass() -> AnyClass { return SwipeStepViewController.self } 表示):

+

将此与您的方法进行比较:

+ (Class)stepViewControllerClass {
    return [ORKFormStepViewController class];
}

既不是类方法,也不返回类,它清楚错误的来源。

答案 1 :(得分:1)

派对很晚,但我相信你的功能应如下:

foo()

答案 2 :(得分:0)

该函数应该返回一个Class。看一下关于元类型类型的Swift参考中的部分:

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html

你的功能应该是

override func stepViewControllerClass(){
    return SwipeStepViewController.self
}