提问人:punjabidharti 提问时间:9/25/2023 最后编辑:punjabidharti 更新时间:9/25/2023 访问量:50
如何返回ViewContoller?
How to go back to ViewContoller?
问:
我正在为 iOS 制作应用程序并使用 Swift。当我从 ViewController 打开 WebViewController 时,它工作正常,但是当我单击导航栏中的后退按钮返回 ViewContoller 时出现问题。然后我收到此错误:
默认情况下,为流程或父应用程序启用检查 将“get-task-allow”权利链接到旧 SDK。使用 API 在较新的 SDK 上启用检查。 2023-09-25 09:24:14.668225+0530 多合一工具[11108:2951385] -[GUL_all_in_one_tools.AppDelegate-EFDEC20C-4D84-4E03-99AF-EE650765ECFE window]:无法识别的选择器发送到实例 0x2811c0de0 2023-09-25 09:24:14.670287+0530 多合一工具[11108:2951385] *** 终止 应用由于未捕获的异常“NSInvalidArgumentException”,原因: '-[GUL_all_in_one_tools。AppDelegate-EFDEC20C-4D84-4E03-99AF-EE650765ECFE window]:发送到实例的无法识别的选择器0x2811c0de0' 首次抛出调用堆栈:(0x1c22dd48c 0x1bb5bd050 0x1c243e424 0x1c4f07514 0x1c22f2700 0x1c235497c 0x10390d7bc 0x103c597a0 0x103c5b0e8 0x10390d734 0x10390f4dc 0x10390f3f4 0x102f6e380 0x102f6e3c4 0x1c427a9fc 0x1c469ff7c 0x1c4475744 0x1c43ac974 0x1c4453dbc 0x1c450000c 0x1c4a04d68 0x1c51cbfcc 0x1c433370c 0x1c43326c0 0x1c4331ecc 0x1c4331fcc 0x1c37819ec 0x103c597a0 0x103c6834c 0x103c67fa4 0x1c2365a2c 0x1c23496c8 0x1c234dda0 0x1f96bc998 0x1c45df80c 0x1c45df484 0x1ca561ddc 0x102f6ad4c 0x102f6acd4 0x102f6add0 0x1dfafc344) libc++abi:由于 NSException 类型的未捕获异常 由于未捕获的异常“NSInvalidArgumentException”而终止应用,原因: '-[GUL_all_in_one_tools。AppDelegate-EFDEC20C-4D84-4E03-99AF-EE650765ECFE window]:发送到实例的无法识别的选择器0x2811c0de0' 由于 NSException 类型的未捕获异常而终止
inspectable
这就是我从ViewController打开WebViewController的方式
@IBAction func flipTextBtn(_ sender: Any) {
let ViewController:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let desVC = ViewController.instantiateViewController(withIdentifier: "WebViewController") as! WebViewController
desVC.Title = "Title Here"
self.navigationController?.pushViewController(desVC, animated: true)
}
答:
我找到了解决方案,刚刚添加
var window: UIWindow?
在 AppDelegate 中,它可以工作。.
感谢您的帮助:)
首先
self.navigationController?.pushViewController is not right method to use for go back.
要返回,您只需要在下面写一行
self.navigationController?.popViewController(animated: true)
如果要返回到特定的 UIViewController,那么首先需要从当前导航栈中查找特定的 UIViewController,获取到特定的 UIViewController 后,即可返回。
下面是如何返回到特定 UIViewController 的示例
guard let vc = self.navigationController?.viewControllers.filter({$0.isKind(of: WebViewController.self)}).first else {return}//get the specific vc
self.navigationController?.popToViewController(vc, animated: true)
评论