A simple iPhone forms library
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Hello good people. This is Sean, the original creator of IBAForms. When I first created IBAForms it was to solve some specific problems I found trying to create forms for the iPhone apps I was developing at the time. Over the years it's received varying amounts of maintenance on the ittybittydude branch based on our consulting, but a large part of that was (and continues to be) done on the realestate-com-au branch.

As iOS moved forward and our consulting took us in different directions, IBAForms got less and less love from us even though many of you are still using, and presumably find value in it. Rather than removing the code from the ittybittydude branch we're leaving it here with this notice to hopefully make new-comers aware that the library is no longer being maintained.

If you're looking for an alternate forms framework, check out:

If you're still keen on IBAForms it'd be worth checking out one of the many active branches.


IBAForms is a framework for building data entry screens on the iPhone. You can quickly make forms using the built-in form field types or create your own custom fields and the user interfaces used to enter data for them. It is an Objective-C library that provides an abstraction layer above common UIKit classes such as UITableView and UITableViewCell.



  • Provides a set of common form field types (text, password, boolean, date, pick list).
  • Manages focus and navigation between form fields.
  • Supports binding a form to its backing model via KVC.
  • Supports transformation of form values via NSValueTransformer.
  • Provides basic styling capabilities at the form, section and field level.
  • Provides extension points for creating your own custom form fields.


These screenshots are form the showcase application in the samples directory. They demonstrate the various out-of-the-box features of IBAForms.

Basic Fields

Advanced Fields


Showcase Form

When you run the showcase application you'll be presented with a form that allows you to specify how you'd like the sample form to run. You can use this to test out the various ways in which a form may be presented (e.g. grouped or ungrouped tableview, etc).

Adding IBAForms to your project

  1. Drag the IBAForms.xcodeproj project in to your XCode 4 project. You might want to drag it in to the Frameworks directory to keep it out of the way. Leave the default options 'Create groups for any added folders' and 'Add to targets (Your Project)' selected and press Finish. If you get an empty item in the sidebar displaying "IBAForms.xcodeproj", you probably have other Xcode project windows open. Close them and try again.
  2. Select your project from the XCode sidebar and then the target you want to add IBAForms to.
  3. Select the Build Phases tab.
  4. Under the Target Dependencies group, click the plus button, select the IBAForms static library target and press Add.
  5. Under the Link Binary Libraries group, click the plus button, select libIBAForms.a and press Add.
  6. Add IBAForms/library/headers to the target's Header Search path. This will need to be a relative path based on where the IBAForms repository is located relative to your project. For the IBAFormsShowcase example this path is $(SOURCE_ROOT)/../../library/headers.
  7. Add -all_load and -ObjC to Other Linker Flags.


IBAForms is brought to you by Itty Bitty Apps. If you like IBAForms, or you've used it in one of your projects, drop us a line, we'd love to hear about it.



Copyright 2010 Itty Bitty Apps Pty Ltd

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.