<!--
{
  "availability" : [
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKInterfaceController/init()",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(cs)WKInterfaceController(im)init"
  },
  "title" : "init()"
}
-->

# init()

Returns an initialized interface controller object.

```
init()
```

## Return Value

The initialized interface controller object.

## Discussion

This method is the designated initializer for interface controller objects. Override this method as needed and use it to prepare your interface controller for use. In your implementation, call `super` first and then perform your own initialization.

> Important:
> If the interface controller has outlets connected to objects in your storyboard file, the super implementation creates those interface objects and assigns them to your declared properties; however, the system cannot guarantee that these objects are ready for use yet. Instead, defer any code that interacts with the user interface to the ``doc://com.apple.watchkit/documentation/WatchKit/WKInterfaceController/awake(withContext:)`` method.

In a page-based interface, all interface controllers are initialized up front but only the first one is displayed initially. The others are not displayed until the user navigates to the corresponding page. If your interface controller displays information that can change between initialization and the display of the page, use the [`willActivate()`](/documentation/WatchKit/WKInterfaceController/willActivate()) method to refresh your content. Use the [`didAppear()`](/documentation/WatchKit/WKInterfaceController/didAppear()) method to start animations or perform tasks that should wait until the interface appears onscreen.

## See Also

  [App Programming Guide for watchOS](https://developer.apple.com/library/archive/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html#//apple_ref/doc/uid/TP40014969)

[`didAppear()`](/documentation/WatchKit/WKInterfaceController/didAppear())

Tells the interface controller that its view is now onscreen.

[`willActivate()`](/documentation/WatchKit/WKInterfaceController/willActivate())

Tells the interface controller that the system is about to activate its view.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)