我有一个带有登录按钮的视图,该按钮以编程方式放置在viewWillAppear的右上角:
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Sign In", style: .plain, target: self, action: #selector(signIn))
相同的视图控制器具有以下方法:
@objc func signIn() {
performSegue(withIdentifier: "loginNewSegue", sender: nil)
}
想法是登录按钮在屏幕上显示模态标志。在故事板中,我使用Present Modally segue将第一个屏幕的视图与登录视图连接起来,并为其指定了标识符" loginNewSegue"。
然而,当我运行应用程序并单击登录按钮时,应用程序崩溃,我得到以下内容:
Terminating app due to uncaught exception 'NSRangeException', reason: 'NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds'
虽然我没有点按“登录”按钮,但一切正常。
不确定我做错了什么。
更新:如果我尝试以下方法:
@objc func signIn() {
print("HERE1")
performSegue(withIdentifier: "loginNewSegue", sender: nil)
print("HERE2")
}
第一次打印出现在控制台中。崩溃发生在第二次印刷之前。