我有一个关于 override func prepare for segue
的问题。我有一个 TableView Controller ,它有一个 UINavigationController
和一个来自另一个 View Controller 的按钮,该按钮连接到 UINav 作为“模态呈现”,标识符为“fakeButtonPressed”。
我的问题是,当我将此代码添加到我的 View Controller 中以在按下按钮时抛出错误:
"unrecognized selector sent to instance 0x7f9c784018f0"
在控制台中。不确定为什么它不起作用。
尝试访问 AddPlayerViewController > UINavigationController > AddPlayerTableViewController。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "fakeButtonPressed"{
let navigationController = segue.destination as! UINavigationController
let controller = navigationController.topViewController as! AddPlayerTableViewController
}
}
最佳答案
请在 Storyboard中删除按钮单击操作首选项。
要删除 Action 事件,请单击 Touch Up Inside 事件中的十字按钮,如上图所示,它将解决您的问题。
是的,你也可以像这样编写 prepare for segue 方法:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "fakeButtonPressed"
{
let controller = (segue.destination as! UINavigationController).viewControllers[0] as! AddPlayerTableViewController
controller.str = "Done..."
}
}
或者
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "fakeButtonPressed"
{
let controller = (segue.destination as! UINavigationController).topViewController as! AddPlayerTableViewController
controller.str = "Done..."
}
}
关于ios - 重写 func prepare(for segue : UIStoryboardSegue, sender : Any?) 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41233702/