我对override func prepare for segue
有疑问。我有一个表视图控制器,它有一个UINavigationController
和一个来自另一个视图控制器的按钮,它连接到UINav作为“模态存在”,标识符为“fakeButtonPressed”。
我的问题是,当我按下按钮时将此代码添加到我的视图控制器中时,会抛出错误:
“无法识别的选择器发送到实例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
}
}
答案 0 :(得分:0)
请在故事板中删除按钮单击“操作首选项”。
要删除动作事件,请单击上方图像中的交叉按钮,如上图所示,它将解决您的问题。
是的,您也可以像这样编写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..."
}
}