gpt4 book ai didi

iOS Swift Unwind segue 从 Detail 到 Master 以启动 segue 到 Detail2 无法正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 07:27:05 25 4
gpt4 key购买 nike

我对此事进行了广泛的谷歌搜索,也许我找不到合适的关键字,所以没有运气找到解决方案。也许这里有人可以提供帮助。

我有 3 个 Viewcontroller - Master、Detail 和 TaskEditViewController。

我正在发布本地通知,在 Detail VC 上启动一个方法,该方法应该展开到 Master,然后启动一个将继续到 TaskEditViewController 的方法。

发生的事情是,首先我将 segue 从 Detail 动画化到 TaskEditViewController(他们在 Storyboard上没有 segue),然后展开并转到 Master。

这是我在 Detail VC 上的代码(接收通知的代码):

func editFromNotification(notification: NSNotification) {
print("Add New Task Screen received")
if let notifId = notification.object!["notifId"] as? String {

taskIdToSend = notifId

selectedTask = getTaskForSelectedId(notifId)

self.performSegueWithIdentifier("sendNotificationToMaster", sender: nil)
}
}

这是从 Master VC 上的 unwind segue 启动的方法:

@IBAction func unwindAndProcessNotification(segue:UIStoryboardSegue) {
if(segue.sourceViewController .isKindOfClass(Detail)) {
let viewSource:Detail = segue.sourceViewController as! Detail
let receivedTaskId = viewSource.taskIdToSend
print("Task sent to open is: \(receivedTaskId)")
selectedTask = getTaskForSelectedId(receivedTaskId)
performSegueWithIdentifier("showEditScreen", sender: nil)
}
}

如果有人能阐明这件事,我得到的行为对我来说完全是个谜......

最佳答案

unwind 方法在 unwind segue 完成之前触发,因此您在 unwind to master 发生之前触发编辑 segue。

因此,您会看到编辑屏幕,然后在展开完成时看到主屏幕。

你需要master在viewWillAppear这样的方法中触发segue。您可以在 unwind 方法中在主 VC 上设置一个标志,以指示它应该执行此操作

关于iOS Swift Unwind segue 从 Detail 到 Master 以启动 segue 到 Detail2 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com