簡體   English   中英

如何在Swift中的Json文件中顯示多個TableView?

[英]How can I display multiple TableViews from a Json File in Swift?

我想要做的是將我的信息從Json文件顯示到Xcode(Swift)上的TableView中。 這是我想要的一個例子:

我想從國家,城市和城市的一些附加信息中檢索我的json數據。 在第一個屏幕中,我想在TableView中顯示國家/地區的名稱:

  • 巴西
  • 德國
  • 法國
  • 美國
  • 阿根廷
  • 等等...

然后,當我在一個國家(例如美國)的單元格中clic時,我想打開一個包含來自USA的所有州(或城市)的新TableView。 所以我在美國clic,我在第二個屏幕上有以下信息:

  • 佛羅里達
  • 紐約
  • 加州
  • 內華達
  • 等等...

最后,當我在某個州(或城市)陳詞濫調時,例如在紐約,我希望從我選擇的州(紐約州)中顯示一些附加信息。 所以在第三個屏幕中我有:

“紐約是一個很棒的城市......等等”

我想從一個tableview到另一個tableview navegate,所以我不知道如何為每個tableview添加屏幕頂部的“后退”按鈕。 我希望在不同的單元格中顯示國家和城市,因此我可以對它們進行陳述並顯示信息。

這是我的json示例:

[
    {
        "country": "Brazil",
        "city": [
            "Sao Paulo",
            "Rio de Janeiro"
        ]
    },
    {
        "country": "Germany",
        "city": [
            "Berlin",
            "Frankfurt"
        ]
    },
    {
        "country": "France",
        "city": [
            "Paris",
            "Marselle"
        ]
    },
    {
        "country": "USA",
        "city": [
            "Florida",
            "New York",
            "California",
            "Nevada"
        ]
    },
    {
        "country": "Argentina",
        "city": [
            "Buenos Aires",
            "Mendoza",
            "La Plata"
        ]
    },
    {
        "country": "England",
        "city": [
            "London",
            "Manchester",
            "Liverpool"
        ]
    }
]

請有人幫我這樣做嗎? 我該怎么做? 非常感謝!

這非常簡單,大部分工作都是由iOS和Xcode完成的,你不會做那么多工作。

您需要了解以下主題: UITableViewUINavigationControllerStoryboards

您可以按照教程進行操作,您會發現這是一項非常簡單的任務。

這是步驟:

  1. 首先,您需要在故事板中設計應用程序UI。 您將為“國家/地區”屏幕創建場景視圖,為城市創建另一個場景視圖,為“城市詳細信息”屏幕創建另一個場景視圖。
  2. UINavigationController嵌入第一個屏幕,這樣您就可以免費獲得所有導航內容。
  3. 在States屏幕表視圖中顯示國家/地區數據。
  4. 從“國家/地區”表視圖到“城市”屏幕創建一個segue。 因此,當選擇一個國家/地區時,其城市將顯示在城市屏幕中。
  5. 使用方法prepareForSegue (在我上面提到的教程中描述)將選定的國家/地區對象傳遞到Cities屏幕。
  6. 顯示城市屏幕中的城市列表。
  7. 從城市屏幕城市詳細信息屏幕導航時執行相同操作。

請先閱讀教程,然后您將很好地理解我提到的步驟。 這項任務非常簡單,大約需要1小時。

您的表視圖數據源方法是針對此用例設計的:

使用NSIndexPath *selected的存儲NSIndexPath *selected來跟蹤didSelectRow中的ui狀態

if (selected)到cellForRow和numberOfRows, if (selected)向數據源方法添加if語句

selected == nil邏輯分支中, return dict.keys.count行數return dict.keys.count並返回dict.keys[indexPath.row][@"country"]作為行的標題

selected != nil分支中, return dict[dict.keys[selected.row][@"cities"].keys.count表示行數並返回dict[dict.keys[selected.row]][@"cities"][indexPath.row]作為行的標題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM