---
title: "pageController(_:prepare:with:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nspagecontrollerdelegate/pagecontroller(_:prepare:with:)"
---

# pageController(_:prepare:with:)

Prepare the view controller and it’s view for drawing.

## Declaration

```swift
@MainActor optional func pageController(_ pageController: NSPageController, prepare viewController: NSViewController, with object: Any?)
```

## Parameters

- `pageController`: The page controller.
- `viewController`: The view controller to prepare for drawing. You should setup the data sources and perform layout.
- `object`: The object to display.

## Discussion

Discussion If this method is not implemented, then viewController object’s representedObject is set to the object. note: This method is called on the main thread and should return immediately. The view will be asked to draw on a background thread and must support background drawing. This method is only useful if pageController(_:identifierFor:) and pageController(_:prepare:with:) are implemented.

## See Also

### Managing View Controllers

- [pageController(_:identifierFor:)](appkit/nspagecontrollerdelegate/pagecontroller(_:identifierfor:).md)
- [pageController(_:viewControllerForIdentifier:)](appkit/nspagecontrollerdelegate/pagecontroller(_:viewcontrollerforidentifier:).md)
- [pageController(_:frameFor:)](appkit/nspagecontrollerdelegate/pagecontroller(_:framefor:).md)
- [NSPageController.ObjectIdentifier](appkit/nspagecontroller/objectidentifier.md)
