Swift / UI Builder 中的程序化分页导航
Posted
技术标签:
【中文标题】Swift / UI Builder 中的程序化分页导航【英文标题】:Programmatic Paginated Navigation in Swift / UI Builder 【发布时间】:2016-06-11 11:28:20 【问题描述】:我是一名高级 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
将填充定义为@IBOutlet
的3 个不同标签,这些标签排列在我的UI 视图控制器中,然后插入这些值。
最后,我想要一个后退和前进按钮,让我可以浏览这些项目。我到处都在寻找这样的系统图标,但它似乎不存在。至少不在 UI Builder 中。我想它只能以编程方式完成,然后我必须导入自己的图像来表示这些按钮。
有人知道我的问题的任何部分,或指导我正确的方向吗?
谢谢!
【问题讨论】:
【参考方案1】:从 Airspeed 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 中设置一个原型单元格,其中包含数据中每个对应字段的字段。
编辑:您可能只需要单元格中的标题,然后将其他信息通过 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)
【讨论】:
非常感谢@Shades。这回答了我的很多问题。还没有看到后退按钮,但是当我编写所有这些代码时它可能会自动弹出.. 将您的 tablewViewController 嵌入到 navigationController 中并观看魔术以上是关于Swift / UI Builder 中的程序化分页导航的主要内容,如果未能解决你的问题,请参考以下文章
Interface Builder 文件 Swift/Parse 错误中的未知类 PFQueryTableView
停止 C++Builder XE 删除/编辑 .dfm 文件中的 UI 组件
loadNibNamed() 失败:Interface Builder 文件中的未知类 <mangled Swift identifier>