I'm trying to set alarm times for a single object with two views; one for quick presets, another with any number of custom times. The two buttons at the top (Presets | Custom) switch between these two methods for setting the alarm.
On the first view (Preset, shown above) you select how often the alarm sounds, and one time. Changing the time in the bottom picker immediately adjusts the times displayed on the top table.
When you go to the custom view (Above), it's empty. The plus sign on the top right adds the currently shown time in the bottom picker to the list of alarms.
Once you press back on the navigation controller, the alarm times currently displayed are saved, and you see the summary screen for the alarm (Above).
The main problem I am having is I feel like there is a disconnection between the two views. I like that you can easily switch between Presets and Custom with one press, but there are scenarios that I feel will create user frustration.
For example, if you start on the Preset and choose once per day, then switch to Custom (which starts blank), then hit Back you will have saved no times (since the active screen when you hit Back is blank). This does not seem friendly to the user. Similarly, if you are on the Custom view and spend time adding several times, then go to Preset before hitting back, again the user's work is lost.
One partial solution to the above is to have the Presets screen populate the Custom screen. So if you choose 4x a day then go to Custom, the four times from the preset would populate the Custom screen. Unfortunately this method does not work in reverse, as there is currently no way to represent arbitrary times on the preset screen. In addition, if I set some Custom times, go to Presets, change my mind and return to Custom, the work I did in Custom has now been replaced by my selected presets. So sometimes it seems like it would be better to keep the views disjoint.
These are the scenarios I'm going through. Does anyone have suggestions on how I can get these two views to work well together, or other suggestions on improving this interface?