【问题标题】:Swift - Performing Segue from UITableViewCells to different View Controller DestinationsSwift - 执行从 UITableViewCells 到不同视图控制器目标的 Segue
【发布时间】:2015-02-16 04:21:48
【问题描述】:

所以我在弄清楚如何为以下目的实现代码时遇到问题:

基本上,我的应用程序允许用户在打开屏幕上在 UItextfield 中键入不同的类别,按 Enter,然后让这些类别出现在 UITableView 中(都在同一个初始视图控制器上)。例如,用户可以输入“家中的朋友”、“大学朋友”、“NBA 球员”。

从那里,我希望用户能够向下钻取其中一行,并通过 segue 转到 UITableView 控制器,在那里他们可以将名称添加到这些列表中,并最终能够对它们进行排名以获得乐趣。 ..

但我目前的问题是,一旦用户在初始视图控制器上添加了他想要的组,他/她如何根据他/她点击的行向下钻取并转到特定的视图控制器?

(我想发布我的故事板的图片,但我还没有必要的 10 个声望点!)

我尝试了这样的代码,但没有得到任何结果。我还会注意到,我从打开视图控制器上的 uitableviewcell 中将一个 show segue 拖到 UITableViewController(segue 名为“EachGroup”)。

   override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if (segue.identifier == "EachGroup") {
        // pass data to next view
        let UIViewController:ViewController = segue.destinationViewController as ViewController
        let indexPath = self.tableView.indexPathForSelectedRow()

    }

【问题讨论】:

    标签: uitableview swift segue uistoryboardsegue


    【解决方案1】:

    这不是一个新问题,关于很多话题。 您应该在每个单元格上指定一个标签:cell.tag = 0

    在您的 prepareForSegue 中,使用:

    if sender!.tag.littleEndian == 0
    {
       let UIViewController:ViewController = segue.destinationViewController as YourSpecificViewcontroller
    }
    else if sender!.tag.littleEndian == 1
    {
       let UIViewController:ViewController = segue.destinationViewController as YourOtherSpecificViewcontroller
    }
    

    希望对你有帮助, 西德。

    【讨论】:

    • 谢谢。但是有两件事:1)我假设我将tableviewcontroller目标的名称放在“as”之后。 2)这是否意味着我必须为每个可能的目的地创建一个新的 tableviewcontroller?如果用户添加 20 个条目,这似乎效率低下。谢谢!
    • 嘿,1) 是的,2) 是的,你应该创建一个开关,更高效。或者,您应该使用if(object_getClass(sender) === YourViewController.self) { //Code here }
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多