ios - 我如何将 NSRangeException 解决为 swift 4?
问题描述
我正在开发使用 swift 4 的应用程序。但是当我想从第一个视图控制器转到第二个视图控制器时,我收到了这个错误
* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayI objectAtIndex:]: index 18446744073709551615 beyond bounds [0 .. 0]”
我尝试在按钮单击时从第一个视图控制器转到第二个视图控制器,如下所示
let vc = storyBoard.instantiateViewControllerWithIdentifier("nextView") as NextViewController
self.presentViewController(vc, animated:true, completion:nil)
但是当我单击按钮时,我的应用程序崩溃并超出 nsrangeexception 错误
那么如何解决这个错误,从第一个 vc 到第二个 vc 的任何其他解决方案?
解决方案
如果您想使用 Identifier 在 StoryBoard 上的 Controller 中导航"nextView"
,请执行此操作(这将适用于您尝试将一个情节提要显示ViewController
到另一个情节提要时ViewController
):
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "nextView") as! NextViewController
self.present(vc, animated:true, completion:nil)
或者,如果您在同一个故事板中,那么您可以简单地执行此操作 - 在firstVC
您ctrl+ drag
的secondVC
. 然后点击segue。(两个视图控制器之间的圆形物体)。-
并为此设置一个标识符(这about
是标识符,您可以为此命名)-
这是代码 -
@IBAction func UserDetailVC(sender: AnyObject) {
self.performSegue(withIdentifier: "segueIdentifierName(about)", sender: sender)
}
推荐阅读
- rest - 我应该使用 POST 请求向我的服务器发送检索请求以获取大量 id 吗?
- filter - 如何在 .net 核心创建自定义过滤器
- c - 在 c 中实现调度算法的建议
- c# - 应用程序池回收后 WCF 服务没有响应
- java - Create a Table every 5 hours
- java - 如何在 intellij idea 中使用 Jshell 元命令
- php - 从 SQL 数据库获取日期会产生错误
- python - python如何将数据框中的一列转换为日期类型并绘图
- json - 如何用已经 JSON 的字符串序列化类
- user-interface - Seq2Seq 模型 - 聊天机器人