# Card

This is an abstract class upon which to build concrete card implementations.

- `browser`
  
  A reference to the browser interface.
  
  @discussion Use this, for example, to make any changes to the top or bottom bars, add, update, or remove cards when a user interacts with a card instance.
  
  @seealso BTNBrowserInterface

#### Declaration

- `view`
  
  The view instance currently associated with this card.
  
  @discussion Returns a non-nil value when a card instance has an associated view representing it. Use this to make any updates to your view, for example, when a user interacts with the view.

#### Declaration

- `cardCTA`
  
  The call to action object to be displayed when the card is “active”.

#### Declaration

- `key`
  
  An object that implements the isEqual: method of the NSObject protocol. This can be used to identify a card, and is meant to be unique.

#### Declaration

- `init(callToAction:)`
  
  Designated initializer for concrete subclass usage.

#### Declaration

#### Parameters

|     |     |
| --- | --- |
| `<br>                                cardCTA<br>` | The call to action object to be displayed when the card is on the top of the list. |

#### Return Value

returns an instance of a card with a cardCta, or nil if passed nil.

- `createView()`
  
  Called when a card instance needs a view for displaying on screen. Subclasses must override this method and return a new view instance.
  @seealso -prepareView:

#### Declaration

- `prepareView(_:)`
  
  Called just before the card’s view is displayed on screen.
  @discussion Subclasses must override this method to prepare the passed card view for display. The passed view will be an instance of the view returned from +createView
  @seealso +createView

#### Declaration
