# BITUpdateManagerDelegate Protocol Reference

Conforms to | NSObject
Declared in | BITUpdateManagerDelegate.h

## Overview

The `BITUpdateManagerDelegate` formal protocol defines methods further configuring the behaviour of `BITUpdateManager`.

## Tasks

### Expiry

- `– shouldDisplayExpiryAlertForUpdateManager:`
- `– didDisplayExpiryAlertForUpdateManager:`

### Privacy

- `– updateManagerShouldSendUsageData:`

### Update View Presentation Helper

- `– viewControllerForUpdateManager:`

## Instance Methods

### didDisplayExpiryAlertForUpdateManager:

Invoked once a default expiry alert is shown

`- (void)didDisplayExpiryAlertForUpdateManager:(BITUpdateManager *)updateManager`

#### Parameters

updateManager

  The `BITUpdateManager` instance invoking this delegate

#### Discussion

Once expiry date is reached and the default blocking UI is shown, this delegate method is invoked to provide you the possibility to do any desired additional processing.

#### See Also

- `

  [BITUpdateManager expiryDate]

  `
- `

  [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:]

  `

#### Declared In

`BITUpdateManagerDelegate.h`

### shouldDisplayExpiryAlertForUpdateManager:

Return if expiry alert should be shown if date is reached

`- (BOOL)shouldDisplayExpiryAlertForUpdateManager:(BITUpdateManager *)updateManager`

#### Parameters

updateManager

  The `BITUpdateManager` instance invoking this delegate

#### Discussion

If you want to display your own user interface when the expiry date is reached, implement this method, present your user interface and return NO. In this case it is your responsibility to make the app unusable!

Note: This delegate will be invoked on startup and every time the app becomes active again!

When returning YES the default blocking UI will be shown.

When running the app from the App Store, this delegate is ignored.

#### See Also

- `

  [BITUpdateManager expiryDate]

  `
- `

  [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:]

  `

#### Declared In

`BITUpdateManagerDelegate.h`

### updateManagerShouldSendUsageData:

Return NO if usage data should not be send

`- (BOOL)updateManagerShouldSendUsageData:(BITUpdateManager *)updateManager`

#### Parameters

updateManager

  The `BITUpdateManager` instance invoking this delegate

#### Discussion

The update module send usage data by default, if the application is NOT running in an App Store version. Implement this delegate and return NO if you want to disable this.

If you intend to implement a user setting to let them enable or disable sending usage data, this delegate should be used to return that value.

Usage data contains the following information: - App Version - iOS Version - Device type - Language - Installation timestamp - Usage time

Warning: When setting this to `NO`, you will NOT know if this user is actually testing!

#### Declared In

`BITUpdateManagerDelegate.h`

### viewControllerForUpdateManager:

Provide a parent view controller for the update user interface (Deprecated: Please use `BITHockeyManagerDelegate viewControllerForHockeyManager:componentManager:` instead)

`- (UIViewController *)viewControllerForUpdateManager:(BITUpdateManager *)updateManager`

#### Parameters

updateManager

  The `BITUpdateManager` instance invoking this delegate

#### Discussion

If you don’t have a `rootViewController` set on your `UIWindow` and the SDK cannot automatically find the current top most `UIViewController`, you can provide the `UIViewController` that should be used to present the update user interface modal.

#### Declared In

`BITUpdateManagerDelegate.h`