我不明白导航器控制器有什么问题

问题描述 投票:0回答:1

我刚刚开始使用 Xcode(我使用 Xcode 15.0.1),想要创建一个小应用程序来理解 ViewControllers 之间的转换。按照网上视频的代码,我遇到了错误。我尝试自己解决这个问题,并使用不同的方式来编写相同的操作。但是,我每次都遇到同样的错误。 我想做到这一点,以便从BlueViewController,当我按下“橙色”按钮时,将使用导航控制器转换到OrangeViewController。 这是BlueViewController中的代码。

@IBAction func ShowOrangeViewController(_ sender: Any) {
        let orangeVC = self.storyboard?.instantiateViewController(withIdentifier: "OrangeViewController") as! OrangeViewController
        self.navigationController?.pushViewController(orangeVC, animated: true);
    }
    
} 

这就是 Main 的样子。

Screens

当我运行程序并按橙色按钮时,它会触发错误。

Thread 1: "-[UIViewController ShowOrangeViewController:]: unrecognized selector sent to instance 0x103b06a2
swift xcode uikit uinavigationcontroller uistoryboardsegue
1个回答
0
投票

如果您查看收到的错误,它会显示找不到的 IBAction 是

-[UIViewController ShowOrangeViewController:]:

它试图在

ShowOrangeViewController(_:)
基类中找到您的
UIViewController
方法。您的“Blue View Controller”可能属于自定义类“BlueViewController”,但 IBAction 试图调用错误类中的方法。

做这些事情:

  • 打开故事板并为蓝色视图控制器选择“视图控制器场景”。然后选择“身份检查器”并确保该视图控制器的类显示为“BlueViewController”(或您为蓝色视图控制器指定的任何类名称。)
  • 切换到连接检查器,选择蓝色视图控制器中的“橙色”按钮,然后检查该按钮的 IBAction。

我猜它写的是“UIViewController ShowOrangeViewController”,这是错误的。如果是这样:

  • 单击橙色按钮事件下连接检查器中的 x,以删除错误的 IBAction 链接。
  • 按住 Option 键单击“OrangeViewController.swift”源文件以在辅助编辑器中将其打开。
  • 按住 Control 键并从界面构建器中的橙色按钮拖动到您的
    ShowOrangeViewController
    操作上,并确保它创建一个链接,并且现在正确列出该 IBAction。

重新运行您的程序并再次尝试橙色按钮。

© www.soinside.com 2019 - 2024. All rights reserved.