2012-08-15 50 views
1

我正在創建一個iPhone應用程序,我需要能夠動態創建一個用戶可以輸入數據的「表單」。例如,假設我正在製作Dominoes Pizza應用程序,您可以通過應用程序內「表單」訂購比薩餅。這種形式有不同的部分標題(披薩,意大利麪,沙拉等)不同的「單選按鈕」,如選項(肉披薩,奶酪比薩等)和一些條件選項(例如,你可能只會看到比薩如果您選擇了披薩複選框)。我的應用程序將類似於一個帶有許多複選框,單選按鈕,下拉菜單等的窗體。我應該如何在iOS中動態創建表單?

我的問題是最好的方式來存儲用於動態創建這種形式的信息?我的要求是很容易改變(比如說芝士披薩現在花費2美元以上),而且它應該能夠被編程經驗有限的人改變。

我的第一本能是使用XML像這樣:

<Item>Pizza</Item> 
    <Type>Dropdown List</Type> 
    <Cost> $5.0 </Cost> 
    <Option> Cheese Pizza </Option> 
    <Option> Pepperoni Pizza </Option> 
    <Option> Meat Pizza </Option> 
<Item>Salad</Item> 
    <Type>Radio Buttons</Type> 
    <Cost> $2.0 </Cost> 
    <Option> Yummy Salad </Option> 
    <Option> Icky Salad </Option> 

有我的應用程序文件,然後我可以只解析這一點,每當我看到一個「單選按鈕」類型,創建單選按鈕,每當我看到一個「下拉列表」創建一個下拉列表。唯一的問題是,如果使用已經選擇了披薩,那麼它可能難以製作條件選項,例如僅顯示沙拉項目。

這是最適合這種情況的技術嗎? XML?請注意,我不希望它嚴格地是一個Web應用程序,因爲我希望能夠使用Objective-C對象,如「UISegmentedControl」。

+0

在決定使用XML或JSON之前,快速瀏覽一下QuickDialog控件https://github.com/escoz/QuickDialog,看看它如何幫助您動態創建表單。 – tGilani 2012-08-15 13:13:40

回答

2

是的,XML絕對是一個不錯的選擇。你也應該考慮使用JSON。在您的Web服務上生成信息,使用JSON對其進行編碼,在應用程序中下載JSON字符串,然後解析並保存該字符串。

一旦你在應用程序中的數據,我會使用UITableView動態創建表單。 UITableView的數據源是NSArray,它很容易從XML或JSON分析中獲得。