2016-03-22 6 views
1

ResearchKitを使用しているプロジェクト(Swift)で作業していて、キャンセルバーボタンが機能しません。 私はそれがResearchKitキャンセルボタンが機能しない

- (void)setCancelButtonItem:(UIBarButtonItem *)cancelButtonItem { 
    [super setCancelButtonItem:cancelButtonItem]; 
    [cancelButtonItem setTarget:self]; 
    [cancelButtonItem setAction:@selector(cancelButtonHandler:)]; 
} 
- (void)cancelButtonHandler:(id)sender { 
    STRONGTYPE(self.taskViewController.delegate) strongDelegate = self.taskViewController.delegate; 
    if ([strongDelegate respondsToSelector:@selector(taskViewController:didFinishWithReason:error:)]) { 
     [strongDelegate taskViewController:self.taskViewController didFinishWithReason:ORKTaskViewControllerFinishReasonDiscarded error:nil]; 
    } 
} 

私は破棄結果を取得し、ポップアップをキャンセル動作させる必要があり、次の方法を発見したが、私は破棄結果のオプションをタップすると何も起こりません。

他に何か確認する必要がありますか?私はどこかに接続する必要がありますか?

答えて

1

このボタンをクリックすると、タスクビューコントローラの代理人taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?)メソッドが呼び出されます。 タスクビューコントローラを手動で終了する必要があります。

参照は、例えば、ORKCatalogTaskListViewController.swiftでの実装:

func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) { 
    /* 
     The `reason` passed to this method indicates why the task view 
     controller finished: Did the user cancel, save, or actually complete 
     the task; or was there an error? 

     The actual result of the task is on the `result` property of the task 
     view controller. 
    */ 
    taskResultFinishedCompletionHandler?(taskViewController.result) 

    taskViewController.dismissViewControllerAnimated(true, completion: nil) 
} 
+0

はい、それは私のためにそのように働きました。私はこのような何かをした:(:ORKTaskViewController、didFinishWithReason理由:ORKTaskViewControllerFinishReason、エラー:?NSError taskViewController){スイッチ理由{ケース.Completed:...場合.Saved、.Failed、.Discarded: \t \t \t taskViewController taskViewController FUNC。 dismissViewControllerAnimated(true、completed:nil) \t \t \t休憩 \t \t} – asheyla

関連する問題