gpt4 book ai didi

ios - 在 swift2 中管理页面导航

转载 作者:可可西里 更新时间:2023-11-01 01:02:34 25 4
gpt4 key购买 nike

我试图在不使用“导航 Controller ”的情况下学习页面导航。
创建了一个按钮和类似功能;

@IBAction func backPressed(sender: AnyObject) {
self.performSegueWithIdentifier("page2ToMain", sender: self)
}

它工作正常。
我需要将数据从第 2 页传递到第 3 页。因此,在“didSelectRowAtIndexPath”中,我使用了“performSegueWithIdentifier”并覆盖了“prepareForSegue”函数,如下所示;

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

self.selectedRow = self.dataArray[indexPath.row]

self.performSegueWithIdentifier("page2ToPage3", sender: self)

}

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

let nextViewController = segue.destinationViewController as! ViewController3
nextViewController.data = self.selectedRow
print(self.selectedRow)

}

当我单击表格单元格时它运行良好,跳转到其他 View Controller 并且我看到数据变量。
但是当我按下后退按钮时,它失败了;

 Could not cast value of type 'test3.ViewControllerMain' (0x1045469f0) to 'test3.ViewController3' (0x1045466e0).

我该如何解决这个问题?

最佳答案

您可以使用可选绑定(bind)对此进行测试:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let nextViewController = segue.destinationViewController as? ViewController3 {
nextViewController.data = self.selectedRow
print(self.selectedRow)
}
}

或者查看 segue identifier 然后对其进行测试:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "page2ToPage3" {
let nextViewController = segue.destinationViewController as! ViewController3
nextViewController.data = self.selectedRow
print(self.selectedRow)
}
}

关于ios - 在 swift2 中管理页面导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34169627/

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