0

如果我使用支持 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
    }
}

我收到错误“通用类型 'SelectorRow' 专用于类型参数太少(得到 1,但预期为 2)”

4

2 回答 2

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>

于 2017-12-26T22:27:01.593 回答
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
  }
}
于 2018-09-19T00:16:43.200 回答