【问题标题】:ResearchKit Cancel button not workingResearchKit 取消按钮不起作用
【发布时间】:2016-03-22 10:11:42
【问题描述】:

我正在使用 ResearchKit 开发一个项目 (Swift),但我的取消栏按钮不起作用。 我找到了以下方法可以使它起作用

- (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];
    }
}

我得到了放弃结果和取消弹出窗口,但是当我点击放弃结果选项时没有任何反应。

我应该检查其他东西吗?我应该把它连接到某个地方吗?

【问题讨论】:

    标签: ios swift cancel-button researchkit


    【解决方案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)
    }
    

    【讨论】:

    • 是的,对我来说就是这样。我做了这样的事情: func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) { switch reason { case .Completed: ... case .Saved, .Failed, .Discarded: taskViewController.dismissViewControllerAnimated(true,完成:无)中断}
    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多