2016-02-28 21 views
0

我是一個資深的Ruby開發者,以及剛剛進入斯威夫特和iPhone的發展,但似乎無法使頭或其中與回答我的問題開始尾巴。我提前道歉,如果我聽起來非常新奇!編程分頁導航斯威夫特/ UI生成器

我的目標是把一組數據(在Ruby中,這將是一個哈希或JSON),並從它的形式x意見。例如,該數據可能是:

my_page_info = { 
{ 
    title: "Page 1", 
    content: "Blah blah blah", 
    additional_info: "Some more blah" 
}, 
{ 
    title: "Page 2", 
    content: "Blah blah blah", 
    additional_info: "Some more blah" 
}, 
{ 
    title: "Page 3", 
    content: "Blah blah blah", 
    additional_info: "Some more blah" 
} 
} 

邊問。什麼是寫在斯威夫特那種信息的最佳方式?假設它不會在JSON ..

然後,我會假設,這將是適當的體系結構,只使用UI Builder中的一個視圖,將代表此數組中的所有可用數據。其中my_page_info將填充排列在我的UI視圖控制器中的被定義爲@IBOutlet的3個不同標籤,然後對這些值進行插值。

最後,我想要一個後退和前進按鈕,這將允許我導航這些項目。我看着無處不在這樣的系統圖標,但它似乎不存在。至少不在UI Builder中。我想它只能以編程方式完成,然後我必須導入我自己的圖像來表示這些按鈕。

有人會知道我的問題的任何部分,或指導我在正確的方向嗎?

謝謝!

回答

1

從空速Velocity的回答我question,您會看到一個結構會去你的數據:

struct Page { 
    let title: String 
    let content: String 
    let additionalInfo: String 
} 

var myPageInfo = [ 
    Page(title: "Page 1", content: "Blah blah blah", additionalInfo: "some more blah"), 
    Page(title: "Page 2", content: "Blah blah blah", additionalInfo: "some more blah"), 
    Page(title: "Page 3", content: "Blah blah blah", additionalInfo: "some more blah"), 
] 

注意去除變量名的下劃線。

然後,我想你會想要一個tableview,在這裏你在Interface Builder中爲數據中的每個對應字段設置一個原型單元格。

編輯:你可能只是想在單元格中的標題,你會穿過賽格瑞的其他信息(見下文)這裏的一切都奠定了很好的所有頁面。

那麼你的cellForRowAtIndexPath方法看起來像:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("pageCell", forIndexPath: indexPath) as! PageCell 

    cell.titleLabel.text = "myPageInfo[indexPath.row].title" 
    cell.contentLabel.text = "myPageInfo[indexPath.row].content" 
    cell.additionalInfoLabel.text = "myPageInfo[indexPath.row].additionalInfo" 

    return cell 
} 

在tableViewController你prepareForSegue方法會通過值選擇您設置顯示信息的視圖控制器的數據。

我不知道你在找什麼在最後一部分,但如果你使用一個navigationController,即可自動後退按鈕(在你的情況會回到tableViewController)

+0

太感謝很多@Shades。這回答了我的很多問題。還沒有看到後退按鈕,但是當我編寫所​​有這些代碼時,它可能會自動彈出。 – Trip

+1

將您的tablewViewController嵌入到navigationController中並觀看魔術 – Shades