使用UISearchController的segue的不同行为

时间:2014-12-02 03:48:40

标签: ios uitableview swift segue uisearchcontroller

我必须在这里做错事。 我有一个UITableView,并实现了一个UISearchController。 我有一个Prototype单元格链接到详细信息屏幕,并在prepareForSegue方法中传递选定的值。

对于普通视图控制器,一切正常,选择一行并按下细节屏幕(即从右侧滑入)。

然而,当有一个主动搜索时,使用UISearchController,详细信息屏幕以模态方式显示(即从屏幕底部向上滑动)而没有UINavigationBar(所以没有可能“返回”)

我没有使用didSelectRowAtIndexPath,因为我使用了storyboard来推送详情屏幕

为什么在每种情况下正确调用“prepareForSegue”中的相同代码时,呈现动画会有所不同:

// MARK: -  Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier! == "PresentContactDetail") {
        // pass person details from selected row
        if let selectedRow = self.tableView.indexPathForSelectedRow()?.row {
            let selectedPerson = self.visibleResults[selectedRow]
            (segue.destinationViewController as ContactDetail).personRecord = selectedPerson
        }
    }
}

感激地收到任何建议。

1 个答案:

答案 0 :(得分:1)

在UITableViewController的ViewDidLoad中设置 definesPresentationContext = true