当我尝试在XCode 9上使用Swift 4从一个视图切换到另一个视图时,它给了我这个错误。
libc ++ abi.dylib:以未捕获的类型异常终止 NSException
我正在使用按钮从Main
切换到LandingView
。 Main
是默认视图(main.storyboard),而LandingView
是main.storyboard
中的另一个视图控制器。
这是我用来实现此功能的代码。
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "LandingView")
self.present(newViewController, animated: true, completion: nil)
[Above]所有包含在我想要使用的按钮的IBAction中。
为了澄清一下,LandingView
是我用来从默认视图切换到LandingView的故事板ID。请注意,这些都包含在Main.storyboard
下。
答案 0 :(得分:0)
您尚未指定newViewController的类型。
试试这个:
let storyBoard: UIStoryBoard = UIStoryBoard(name: "Main", bundle: nil)
let newViewController = storyboard.instantiateViewController(withIdentifier: "LandingView") as! younewViewControllerType
self.present(newViewController, animated: true, completion: nil)
要确定您已声明LandingView ViewController子类的内容,可以在“接口”构建器中引用Identity Inspector,如下图所示:
在Custom Class下,Class属性定义您的自定义子类。声明newViewController时,必须将其声明为该类型。