如何解决尝试从 NSTableView 转到 ViewController 时出错
我试图从主视图控制器上的 @androidx.room.Database(entities = {CompressedAssertion.class},version = 1,exportSchema = false)
@TypeConverters({Converters.class})
public abstract class CompressedDatabase extends RoomDatabase{
public abstract CompressedAssertionDao compressedAssertionDao();
}
转到新的视图控制器,每当我运行它时,我都会收到以下错误:NSTableView
。我试图覆盖 MainViewController perform:]: unrecognized selector sent to instance 0x7fd6ca50e850
函数,认为有一个选择器在后端调用它,但它没有任何区别,我认为它的目的是别的。我试图在网上寻找解决方案,但找不到任何东西,所以想在这里提问。
当我点击 NStableview 中的一行时,segue 就会开始,所以我认为我不需要调用 perform
。我试图把它放在 tableview 的双击方法中(有一个没有到达的打印语句和断点)。
我已经在我的主视图控制器中实现了 performSegue(withIdentifier: "templateDetailSegue",sender: self)
,在我试图继续的视图控制器中实现了 override func prepare(for segue: NSStoryboardSegue,sender: Any?)
,但都没有达到(再次使用断点和打印语句)。>
这是我在主视图控制器(顶部)和我正在访问的视图控制器(底部)之间建立的连接/转场的图像。
我有什么想法或地方可以让它发挥作用?在此先感谢您的帮助。
编辑
我希望用户能够单击表格中的一行,并且我希望第二个视图控制器嵌入(到相同大小)旧视图控制器的顶部。我很高兴它现在是模块化的或任何多余的东西。
我添加了如图所示的 segue,当我点击表格中的任何一行时,应用程序崩溃并显示 override func viewWillAppear()
。我已经添加了以下方法,但我不确定还要添加什么,特别是因为它们甚至没有被达到:
在父视图控制器中:
parentviewcontroller perform:]: unrecognized selector sent to instance 0x7f8f7de06470
在子视图控制器中:
override func prepare(for segue: NSStoryboardSegue,sender: Any?) {
print("in prepare")
switch segue.identifier {
case "templateDetailSegue":
let row = tableViewTemplates.selectedRow
// Get the item associated with this row and pass it along
let template = getTemplatesByOriginalOrNot()?[row]
let templateDetailViewController = segue.destinationController as! TemplateDetailViewController
templateDetailViewController.template = template
default:
preconditionFailure("Unexpected segue identifier")
}
}
编辑 2
我遇到了 NSStoryboardSegue 并且您可以在其中覆盖 override func viewWillAppear() {
print("Appearing!")
super.viewWillAppear()
}
,因此我创建了一个新文件并覆盖了该函数。它没有被调用,我得到了同样的错误。
Perform
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。