Xcode:用于创建ViewController的TableView单元格

时间:2017-09-28 09:03:20

标签: ios swift xcode app-store

我最近开始使用Xcode和Beginner来创建应用。我发现了一些我想要实施的内容,但研究并不十分清楚/复杂。

我有一个带有Days of Week的TableView,还有一个segmentedControl,这些日子重复这些天3次。我想知道我是如何能够让用户点击带我到另一个ViewController,具体取决于它是哪一天以及segmentedController的哪个部分被选中而无需在故事板中创建21个viewcontrollers。

我已经使用了一个ViewController并为tableView设置了一个插座来进行此设置。

TableView with segmentedController

3 个答案:

答案 0 :(得分:0)

你可以拥有一个viewcontroller,它基本上是你想去的viewcontroller的配方。

例如,您希望显示一个带有标签的viewcontroller,该标签表示分段控件中的数字与用户点击的日期的组合。

如果您现在创建一个在故事板中有标签的ViewController,标签上的文字无关紧要,您可以使用代码将文本更改为您想要的任何内容。

在tableviewcontroller中,您可以使用tableview的didSelect委托方法来呈现viewcontroller,并将标签设置为分段控件和被轻击的单元格的值。

我认为您只需要更多关于iOS和编程的信息,因此我建议您观看以下iTunes U课程:
https://itunes.apple.com/us/course/developing-ios-10-apps-with-swift/id1198467120
它拥有您需要知道的一切

答案 1 :(得分:0)

在你的tableview委托方法中 - > didSelectedRowAtIndexPath

you can simply write 
let vc = UIViewController()
/*
you can add informations here 
*/
present(vc, animated: true)

在此方法中,您可以使用indexPath获取您点击的单元格

let cell = tableView.cellForRowAt(indexPath)

现在您可以获取此单元格中的信息

答案 2 :(得分:0)

使用两个变量(Ex - dayName和selectedSegmentIndex)创建详细视图控制器。并且在你当前的viewController" tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath)"使用这些

这些细节推送detailsViewController
let objViewController: DetailsViewController? = UIStoryboard.mainStoryboard().instantiateViewController(withIdentifier: "DetailsViewController") as? DetailsViewController
    objViewController?.dayName = dayName
    objViewController?.selectedSegment = segmentControl.selectedSegmentIndex
    navigationController?.pushViewController(objViewController ?? UIViewController(), animated: true)