You can set a delegate to intercept messages sent by the UI controls after a user interaction, for example, after tapping a button.
Implement the MAFTileActionHandlerDelegate protocol, and register the delegate via MAFTileCreatorDelegate’s registerActionHandlerDelegateForTile: API.
- (BOOL) performAction:(MAFActionDescriptor*)actionDescriptor_in onTile:(MAFTile*)tile_in sender:(UIView*)sourceUIElement_in context:(MAFContext*)context_in waitUntilDone:(BOOL*)waitUntilDoneFlag_in;
You can specify in the return value to either process the given action or let the framework handle it. Return YES to take over processing of a particular action; otherwise, return NO. To execute both your own logic and the framework’s, perform your custom logic and return NO.
      <!-- UIButton -->
      <UIElement type="button">
        ...params skipped for brevity
        <!-- assign events -->
        <Event eventId="onClick">
          <!-- ...and actions -->
          <Action actionId="navigate">
            <P pid="target" value="AppScreen" />
          </Action>
        </Event>
      </UIElement>
// Notify framework to continue action processing [[NSNotificationCenter defaultCenter] postNotificationName:kMAFProcessFurtherActions object:nil];
// Notify framework to drop all remaining queued actions [[NSNotificationCenter defaultCenter] postNotificationName:kMAFDeleteFurtherActionsFromQueue object:nil];
-(BOOL) performAction:(MAFActionDescriptor*)actionDescriptor_in onTile:(MAFTile*)tile_in sender:(UIView*)sourceUIElement_in context:(MAFContext*)context_in waitUntilDone:(BOOL*)waitUntilDoneFlag_in
{
    BOOL retVal = NO;   
    switch (actionDescriptor.actionType) 
    {
        case MAFEXT_ACTION_TYPE_CUSTOM:
        {
            if ([actionDescriptor.customActionID isEqualToString:@"MyCustomActionID"]) 
            {
                //perform custom action
...
// set return value to YES, indicating that we handled the event, and the framework should not try to process it
	retVal = YES;
            }
        } break;
        ...
    }
    return retVal;
}