我在UINavigation Controller
下有一套故事板。其中一个屏幕包含一个表格视图,我需要将点击的行的数据发送到下一个屏幕。我知道这样做会要求我使用segue。但是,我如何获得Navigation Bar
和Navigation Button
为了更好地理解,我上传了第一个屏幕的屏幕截图。单击详细信息按钮将将挑战对象发送到下一个屏幕。但是,我期待在下一个scree的顶部有相同的导航栏。知道如何实现这样的目标?
目前,如果我按下详细信息button
,我会在终端获取该挑战的详细信息。
@IBAction func CAStartChallenge(_ sender: UIButton) {
let tag = NSNumber(value: sender.tag) as! Int
print("challenge name to be printed : \(challengeTableConent[tag].display()) ")
}
答案 0 :(得分:1)
在故事板中,您想在视图控制器之间拖动一个segue,如下所示:
对segue使用Show
或Push (deprecated)
选项。为此segue指定适当的标识符,例如Details
。
然后在按钮功能中添加以下内容:
@IBAction func CAStartChallenge(_ sender: UIButton) {
let tag = NSNumber(value: sender.tag) as! Int
performSegue(withIdentifier: "Details", sender: challengeTableConent[tag])
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Details",
let destination = segue.destination as? DestinationViewController,
let model = sender as? ChallengeTableContentType {
// pass through model to destination view controller
destination.model = model
}
}
然后,您可以在出现时使用其特定模型配置目标视图控制器。
答案 1 :(得分:1)
首先
使用segue通过屏幕传递数据很简单。请查看此答案
它将准确解释如何做到这一点
<强>第二强>
检查按钮上的错误我认为你的意思是&#34;细节&#34;
<强>第三强>
检查segue的类型,您可能没有使用push或show detail。同时选择详细信息视图并确保&#34;模拟指标 - &gt;顶栏&#34;设置为推断
一些打印帮助
这将确保导航栏来自先前的控制器
这就是你的segue的外观,不要忘记为你的segue提供一个标识符