我是一名高级 Ruby 开发人员,刚刚进入 Swift 和 iPhone 开发领域,但似乎无法确定从哪里开始回答我自己的问题。如果我听起来非常新,我
提前道歉!我的目标是获取一组数据(在 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"
}
}
侧面问题..在 Swift 中编写此类信息的最佳方式是什么?假设它不会在 JSON 中。
然后,我认为在UI Builder中仅使用一个表示此数组中所有可用数据的视图是正确的体系结构。其中my_page_info
将填充 3 个不同的标签,定义为在我的 UI 视图控制器中排列@IBOutlet
,然后插入值。
最后,我想有一个后退和前进按钮,让我可以浏览这些项目。我到处寻找这样的系统图标,但它似乎不存在。至少不是在 UI 生成器中。我想它只能以编程方式完成,然后我必须导入我自己的图像来表示这些按钮。
有人知道我问题的任何部分,或者引导我朝着正确的方向前进吗?
谢谢!
从 Airspeed Velocity 对我问题的回答中,您会看到结构将是处理数据的方法:
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"),
]
请注意从变量名称中删除下划线。
然后,我认为您需要一个表格视图,您可以在界面生成器中设置单个原型单元格,其中包含数据中每个相应字段的字段。
编辑:您可能只想在单元格中显示标题,然后通过 segue(见下文)将其他信息传递到所有内容都布置良好的页面。
然后,您的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 方法会将所选数据的值传递给您设置为显示信息的 ViewController。
我不确定你在最后一部分中要查找什么,但是如果您使用导航控制器,则会自动获得一个"后退"按钮(在您的情况下,该按钮将返回到tableViewController)