The ui module documentation can be found in the Pythonista Modules section of the docs tab, along with all other custom iOS modules and a few third-party ones.
Action functions and delegates are two separate things. An action function is a regular function with a single parameter named sender. Every element can only have a single action, if any, which is called when the element's main action is used, e. g. a button is pressed. The sender parameter will be the element that triggered the action, so it is possible to reuse the same action function for multiple elements.
Delegates are classes rather than functions. (If you're familiar with other event-based toolkits, they are somewhat similar to listeners.) They are used to handle objects with multiple actions, or secondary/less important object actions. When one of these secondary actions occurs, the corresponding method of the element's delegate is called. For example, a TextView delegate can have the textview_did_begin_editing method, which is called when the user taps the TextView to edit the text. That method only has a textview parameter (similar to the sender of action functions). More complicated functions can have additional parameters, for example which row of a TableView was selected.
Both action functions and delegate objects are not specific to one type of element. The action's sender can be of any type, so you can use one action function for all elements (the use of that is questionable though). More importantly, delegate methods are prefixed with the source element type, so there are no naming conflicts between e. g. textfield_did_begin_editing and textview_did_begin_editing. Personally I find it useful to have one class as a delegate for all elements.