gpt4 book ai didi

xcode - UIButton 触发 Segue

转载 作者:可可西里 更新时间:2023-11-01 01:37:10 24 4
gpt4 key购买 nike

我正在尝试将 2 个 Controller 与 segue 链接在一起。我有一个带有 6 个按钮的 View Controller ,单击按钮后将显示一个 tableviewcontroller。我制作了所有链接,将标识符提供给 segue 等。

tableviewcontroller 中有一个数组,它应该根据哪个按钮触发 segue 来显示过滤结果

prepareforsegue 方法应该怎么写?

这就是我做的

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

if segue.identifier == "chooseBrand" {

if sender?.tag == 1 {
let destinationController = segue.destinationViewController as! SelectionTableViewController
let numberOfCameras = destinationController.Camera.count

问题是我收到这个错误信息

"Could not cast value of type 'UINavigationController' (0x10a0ef588) to 'myApp.SelectionTableViewController' (0x108658b90)."

如何根据按下的按钮在 selectiontableviewcontroller 中定义 tableview 的内容?

非常感谢任何形式的帮助:)

最佳答案

这里的发件人到底是什么?错误是说 tag = 1 的发件人不是 SelectionTableViewController。

无论如何,您可以做的只是将每个按钮连接到相同的 Action 导出方法,并在两个 Controller 之间有一个通用的 segue。然后当您点击按钮 A、B、C、D、E 或 F 时,您只需检查它们的 标签(或将它们作为变量存储在您的 Controller 类中)并向 Controller 发送您想要的任何内容。 Controller 之间的转场是两个 Controller 之间的转场,而不是来自每个 UIButton 的另一个 Controller 的 转场,这一点很重要。在下面的示例中,我假设您将六个 UIButton 中的每一个都存储为类变量。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segueFromFirstToSecond" {
let destinationController = segue.destinationViewController as! SelectionTableViewController
if sender = button1 {
let numberOfCameras = destinationController.Camera.count
} else if sender == button2 {
let numberOfCameras = destinationController.Camera.count
}
}

@IBAction func buttonPressed(sender: AnyObject) {
performSegueWithIdentifier(segueProfileToPul, sender: sender)
}

将所有按钮连接到 buttonPressed()。我认为 let numberOfCameras = destinationController.Camera.count 这一行行不通,因为 SelectionTableViewController 尚未实例化,因此其变量中没有值(我认为)。您正在寻找的可能是将此值设置为 destinationController.Camera.count = someValue。也许我错了。

编辑我上传了一个测试项目来展示我的意思。注意我在 Storyboard 中建立的联系。下载 here

关于xcode - UIButton 触发 Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35719970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com