0

当我点击同意按钮时,它应该进入同意完成步骤,但它进入同意不同意步骤。请问谁能指出是什么问题?

let consentTask = ORKNavigableOrderedTask(identifier: String(describing:Identifier.consentTask), steps: [reviewConsentStep, disAgreeStep, completionStep])

resultSelector = ORKResultSelector(
    resultIdentifier: String(
        describing: Identifier.consentReviewStep))
let predicateAgree = ORKResultPredicate.predicateForConsent(
    with: resultSelector, didConsent: true)

let agreePredicateRule = ORKPredicateStepNavigationRule(
    resultPredicatesAndDestinationStepIdentifiers: [
        (predicateAgree,
         String(describing: Identifier.consentCompletionStep))])

consentTask.setNavigationRule(
    agreePredicateRule,
    forTriggerStepIdentifier:String(
        describing:Identifier.consentReviewStep))

let consentDirectRule = ORKDirectStepNavigationRule(
    destinationStepIdentifier: ORKNullStepIdentifier)
consentTask.setNavigationRule(
    consentDirectRule,
    forTriggerStepIdentifier:String(
        describing:Identifier.consentDisagreeStep))
4

1 回答 1

0

问题是传递给的 resultSelector+predicateForConsentWithResultSelector:didConsent:必须提供所需的步骤标识符(stepIdentifier 参数)和所需的签名标识符(resultIdentifier 参数)。

代替:

let resultSelector = ORKResultSelector(resultIdentifier:String(describing: Identifier.consentReviewStep))
let predicateAgree = ORKResultPredicate.predicateForConsent(with: resultSelector, didConsent: true)

它应该是:

let resultSelector = ORKResultSelector(stepIdentifier: String(describing: Identifier.consentReviewStep), resultIdentifier: signature.identifier)
let predicateAgree = ORKResultPredicate.predicateForConsent(with: resultSelector, didConsent: true)
于 2017-01-06T17:07:38.933 回答