Ios Segue Destination Call ViewDid何时出现?
尝试在lldb中调试时,似乎只是简单地分配segue.destination就触发了ViewDidDisplay出现在目标视图控制器中。在传递文件夹之前,目标中的ViewDid出现致命错误。我知道任何初始值设定项代码都必须运行(确实如此——根据lldb e命令正确初始化了几个字段)。在prepareForSegue完成之前调用ViewDidDisplay是没有意义的 我在strategyPicker.folder分配和NSLog上有断点,在目标视图中出现错误之前,两个触发器都没有Ios Segue Destination Call ViewDid何时出现?,ios,xcode9,lldb,Ios,Xcode9,Lldb,尝试在lldb中调试时,似乎只是简单地分配segue.destination就触发了ViewDidDisplay出现在目标视图控制器中。在传递文件夹之前,目标中的ViewDid出现致命错误。我知道任何初始值设定项代码都必须运行(确实如此——根据lldb e命令正确初始化了几个字段)。在prepareForSegue完成之前调用ViewDidDisplay是没有意义的 我在strategyPicker.folder分配和NSLog上有断点,在目标视图中出现错误之前,两个触发器都没有 有什么建议吗?
有什么建议吗?
viewDidLoad
/viewwillbeen
/viewdidbeen
在调用prepare(for:sender:)
之前不调用
您显示的函数没有被调用,因为它没有正确的方法签名。你想要
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let strategyPicker=segue.destination as! StrategyViewController
strategyPicker.folder=self.folder
NSLog("Tried to pass \(self.folder) into \(String(describing: strategyPicker.folder))")
}
此外,由于您在目标视图控制器中提到了崩溃,因此很可能是在那里强制展开
文件夹
;您可能应该重新思考这一点,并编写防御代码。如果文件夹
为nil
viewdiload
/视图将出现
/视图显示
在调用准备(for:sender:)
之前未调用,则有条件地展开并显示相应的错误消息
您显示的函数没有被调用,因为它没有正确的方法签名。你想要
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let strategyPicker=segue.destination as! StrategyViewController
strategyPicker.folder=self.folder
NSLog("Tried to pass \(self.folder) into \(String(describing: strategyPicker.folder))")
}
此外,由于您在目标视图控制器中提到了崩溃,因此很可能是在那里强制展开
文件夹
;您可能应该重新思考这一点,并编写防御代码。如果文件夹
为无
我的道歉,则有条件地展开并显示相应的错误消息!代码是用Swift 2编写的,通过Swift 3被忽略,并手动(错误地)转换为Swift 4。我道歉!代码是用Swift 2编写的,通过Swift 3被忽略,并手动(错误地)转换为Swift 4。