---
title: OCKTaskViewController
framework: CareKit
role: symbol
role_heading: Class
platforms: [iOS 13.0+, Mac Catalyst 13.0+, watchOS 7.0+]
path: carekit/ocktaskviewcontroller
---

# OCKTaskViewController

An abstract superclass to all synchronized view controllers, that displays a task and its events.

## Declaration

```swift
class OCKTaskViewController<Controller, ViewSynchronizer> where Controller : OCKTaskControllerProtocol, ViewSynchronizer : OCKTaskViewSynchronizerProtocol
```

## Overview

Overview This abstract superclass has a factory function that you can use to conveniently initialize a concreted subclass.

## Topics

### Creating Task View Controllers

- [init(controller:viewSynchronizer:)](carekit/ocktaskviewcontroller/init(controller:viewsynchronizer:).md)
- [init(task:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(task:eventquery:storemanager:)-5ezdd.md)
- [init(taskID:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskid:eventquery:storemanager:)-6yaar.md)
- [init(taskIDs:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskids:eventquery:storemanager:)-7ifgp.md)
- [init(viewSynchronizer:task:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(viewsynchronizer:task:eventquery:storemanager:).md)
- [init(viewSynchronizer:taskID:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(viewsynchronizer:taskid:eventquery:storemanager:).md)
- [init(viewSynchronizer:taskIDs:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(viewsynchronizer:taskids:eventquery:storemanager:).md)

### Handling Event Changes

- [delegate](carekit/ocktaskviewcontroller/delegate.md)
- [OCKTaskViewControllerDelegate](carekit/ocktaskviewcontrollerdelegate.md)
- [didSelectTaskView(_:eventIndexPath:)](carekit/ocktaskviewcontroller/didselecttaskview(_:eventindexpath:).md)

### Configuring View Controllers

- [controller](carekit/ocktaskviewcontroller/controller.md)
- [taskView](carekit/ocktaskviewcontroller/taskview.md)
- [viewSynchronizer](carekit/ocktaskviewcontroller/viewsynchronizer.md)

### Initializers

- [init(coder:)](carekit/ocktaskviewcontroller/init(coder:).md)
- [init(nibName:bundle:)](carekit/ocktaskviewcontroller/init(nibname:bundle:).md)
- [init(task:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(task:eventquery:storemanager:)-3znbq.md)
- [init(task:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(task:eventquery:storemanager:)-8mbgt.md)
- [init(task:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(task:eventquery:storemanager:)-9768h.md)
- [init(task:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(task:eventquery:storemanager:)-9ry45.md)
- [init(taskID:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskid:eventquery:storemanager:)-4q5dd.md)
- [init(taskID:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskid:eventquery:storemanager:)-51s8o.md)
- [init(taskID:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskid:eventquery:storemanager:)-7z8af.md)
- [init(taskID:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskid:eventquery:storemanager:)-91xm8.md)
- [init(taskIDs:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskids:eventquery:storemanager:)-13wn1.md)
- [init(taskIDs:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskids:eventquery:storemanager:)-154jy.md)
- [init(taskIDs:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskids:eventquery:storemanager:)-1ttuk.md)
- [init(taskIDs:eventQuery:storeManager:)](carekit/ocktaskviewcontroller/init(taskids:eventquery:storemanager:)-89tj2.md)

### Instance Methods

- [loadView()](carekit/ocktaskviewcontroller/loadview().md)
- [taskView(_:didCompleteEvent:at:sender:)](carekit/ocktaskviewcontroller/taskview(_:didcompleteevent:at:sender:).md)
- [taskView(_:didCreateOutcomeValueAt:eventIndexPath:sender:)](carekit/ocktaskviewcontroller/taskview(_:didcreateoutcomevalueat:eventindexpath:sender:).md)
- [taskView(_:didSelectOutcomeValueAt:eventIndexPath:sender:)](carekit/ocktaskviewcontroller/taskview(_:didselectoutcomevalueat:eventindexpath:sender:).md)
- [viewDidLoad()](carekit/ocktaskviewcontroller/viewdidload().md)

## Relationships

### Inherits From

### Inherited By

- [OCKGridTaskViewController](carekit/ockgridtaskviewcontroller.md)
- [OCKSimpleTaskViewController](carekit/ocksimpletaskviewcontroller.md)

### Conforms To

- Foundation.NSCoding
- Foundation.NSExtensionRequestHandling
- [OCKTaskViewDelegate](carekitui/ocktaskviewdelegate.md)
- ObjectiveC.NSObjectProtocol
- Swift.CVarArg
- Swift.CustomDebugStringConvertible
- Swift.CustomStringConvertible
- Swift.Equatable
- Swift.Hashable
- UIKit.UIActivityItemsConfigurationProviding
- UIKit.UIAppearanceContainer
- UIKit.UIContentContainer
- UIKit.UIFocusEnvironment
- UIKit.UIPasteConfigurationSupporting
- UIKit.UIResponderStandardEditActions
- UIKit.UIStateRestoring
- UIKit.UITraitEnvironment
- UIKit.UIUserActivityRestoring

## See Also

### Task Views and Controllers

- [OCKSimpleTaskViewController](carekit/ocksimpletaskviewcontroller.md)
- [OCKSimpleTaskView](carekitui/ocksimpletaskview.md)
- [OCKGridTaskViewController](carekit/ockgridtaskviewcontroller.md)
- [OCKGridTaskView](carekitui/ockgridtaskview.md)
- [OCKGridTaskCell](carekitui/ockgridtaskcell.md)
- [OCKChecklistTaskView](carekitui/ockchecklisttaskview.md)
- [OCKInstructionsTaskView](carekitui/ockinstructionstaskview.md)
- [OCKButtonLogTaskController](carekit/ockbuttonlogtaskcontroller.md)
- [OCKButtonLogTaskView](carekitui/ockbuttonlogtaskview.md)
- [OCKLogTaskView](carekitui/ocklogtaskview.md)
- [OCKLogButtonCell](carekitui/ocklogbuttoncell.md)
- [OCKTaskController](carekit/ocktaskcontroller.md)
