Swift / UI Builder 中的编程分页导航



我是一名高级 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)

最新更新