如果我使用最新支持swift 4的Eureka pod,我就得到了答案。 https://github.com/xmartlabs/Eureka/issues/1355#issuecomment-353334726
但我在分支swift 3.2
当我使用上面链接中给出的解决方案时
class MyPushViewController: SelectorViewController<SelectorRow<PushSelectorCell<String>>> {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
我收到错误&#34;通用类型&#39; SelectorRow&#39;专门用于太少的类型参数(得到1,但预期为2)&#34;
答案 0 :(得分:0)
您遇到的错误与SelectRow泛型类型有关。它需要2个类型参数:
<SelectRow<PushSeletorCell<String>, second type here>
尤里卡的例子:
public final class CustomPushRow<T: Equatable>: SelectorRow<PushSelectorCell<T>, SelectorViewController<T>>, RowType {
public required init(tag: String?) {
super.init(tag: tag)
presentationMode = .show(controllerProvider: ControllerProvider.callback {
return SelectorViewController<T>(){ _ in }
}, onDismiss: { vc in
_ = vc.navigationController?.popViewController(animated: true)
})
}
}
如您所见,SelectRow需要2种类型的参数:PushSelectorCell<T>
和SelectorViewController<T>
答案 1 :(得分:0)
我试图让自定义行起作用,但是经过近2个小时的实验,我什么都没做。随机的模板错误,它使我想起了cpp中的模板地狱。
这是针对像我这样疲倦的人的解决方法:
class CustomNavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
// force status bar style for Eureka forms
if topViewController is FormViewController {
return .lightContent
}
return topViewController?.preferredStatusBarStyle ?? .default
}
}