Xcode中Segue无法生效问题(新手求助)
视图切换时
print("test prepare")未触发的原因分析 在学习Greg Lim所著《Beginning iOS 16 SWIFT》第三章的表格视图语录应用时,视图间切换过程中print("test prepare")代码未触发,常见原因如下:
- 未正确重写
prepare(for:sender:)方法:重写UIKit的prepare方法必须添加override关键字,否则编译器会将其视为自定义方法,系统在视图跳转时不会调用该方法。 - 视图跳转方式未触发segue流程:只有通过storyboard中配置的segue(调用
performSegue(withIdentifier:sender:)触发)跳转时,系统才会执行prepare(for:sender:)。如果是用代码直接实例化并push/present视图控制器,或者在SwiftUI中使用NavigationLink跳转,都不会触发这个方法。 - Segue标识符不匹配:检查storyboard内segue的标识符与代码中调用的是否一致,标识符错误会导致segue无法被正确触发,进而跳过
prepare方法执行。 - 方法内存在条件拦截:查看
prepare方法是否有条件判断逻辑,若当前跳转场景不满足判断条件,print语句会被跳过,无法输出内容。
相关截图:

内容的提问来源于stack exchange,提问作者Nibbles
相关产品推荐
相关产品推荐

