return Swift 中的新 ViewController
return new ViewController in Swift
这是对此的后续问题:
所以我有一个名为 SwipeStepViewController 的 ViewController,它是 ORKActiveStepViewController 的子class。在 SwipeStep class 中,我尝试用我的自定义 SwipeStepViewController
.
覆盖默认值 ViewController
我试图覆盖 +stepViewControllerClass
方法和 return 我的自定义 Viewcontroller 在 SwipeStep class 中:
导入 ResearchKit
class SwipeStep:ORKActiveStep{
override func stepViewControllerClass(){
return SwipeStepViewController.self
}
}
但这根本不起作用。
我使用 researchkit,但我想这是一个一般性的 swift 问题。
那个函数应该return一个Class。查看 Swift 参考中有关元类型的部分:
你的函数应该是
override func stepViewControllerClass(){
return SwipeStepViewController.self
}
我没有任何使用 ResearchKit 的经验,但是看了 Objective-C code 我相信你的方法应该是:
override class func stepViewControllerClass() -> AnyClass {
return SwipeStepViewController.self
}
解释您收到错误的原因:
Method does not override any method from its superclass.
and
'SwipeStepViewController.Type' is not convertible to '()'
看看 class 方法(由 +
表示)你应该覆盖:
+ (Class)stepViewControllerClass {
return [ORKFormStepViewController class];
}
将此与您的方法进行比较:
override func stepViewControllerClass(){
return SwipeStepViewController.self
}
这既不是 class 方法,也不是 returns class 并且很清楚错误的来源。
来晚了,但我相信你的功能应该如下:
class SwipeStep : ORKActiveStep {
static func stepViewControllerClass() -> SwipeStepViewController.Type {
return SwipeStepViewController.self
}
}
这是对此的后续问题:
所以我有一个名为 SwipeStepViewController 的 ViewController,它是 ORKActiveStepViewController 的子class。在 SwipeStep class 中,我尝试用我的自定义 SwipeStepViewController
.
我试图覆盖 +stepViewControllerClass
方法和 return 我的自定义 Viewcontroller 在 SwipeStep class 中:
导入 ResearchKit
class SwipeStep:ORKActiveStep{
override func stepViewControllerClass(){
return SwipeStepViewController.self
}
}
但这根本不起作用。 我使用 researchkit,但我想这是一个一般性的 swift 问题。
那个函数应该return一个Class。查看 Swift 参考中有关元类型的部分:
你的函数应该是
override func stepViewControllerClass(){
return SwipeStepViewController.self
}
我没有任何使用 ResearchKit 的经验,但是看了 Objective-C code 我相信你的方法应该是:
override class func stepViewControllerClass() -> AnyClass {
return SwipeStepViewController.self
}
解释您收到错误的原因:
Method does not override any method from its superclass.
and
'SwipeStepViewController.Type' is not convertible to '()'
看看 class 方法(由 +
表示)你应该覆盖:
+ (Class)stepViewControllerClass {
return [ORKFormStepViewController class];
}
将此与您的方法进行比较:
override func stepViewControllerClass(){
return SwipeStepViewController.self
}
这既不是 class 方法,也不是 returns class 并且很清楚错误的来源。
来晚了,但我相信你的功能应该如下:
class SwipeStep : ORKActiveStep {
static func stepViewControllerClass() -> SwipeStepViewController.Type {
return SwipeStepViewController.self
}
}