我在這件事上做了大量的谷歌搜索,也許我無法找到正確的關鍵字,因此沒有找到解決方案的運氣。 也許這裏有人可能會提供幫助。iOS Swift將細節從細節展開到主從而將細節展開成Detail2不能按順序工作
我有3個Viewcontrollers - 主,細節和TaskEditViewController。
我發佈了一個本地通知,它激發了Detail VC中的一個方法,該方法應該展開給Master,然後啓動一個將繼承到TaskEditViewController的方法。
會發生什麼事情,首先我得到從細節動畫到TaskEditViewController的動畫(它們在故事板上沒有延續),然後展開並轉到Master。
這裏是我的詳細信息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)
}
}
及這裏的被從展開SEGUE上主VC發射了方法:
@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方法在展開segue完成之前觸發,因此您在展開到master之前觸發編輯segue,因此您隨着展開完成,請參閱編輯屏幕和主屏幕。你需要主人通過'viewWillAppear'等方法來觸發segue。您可以在unwind方法中的主VC上設置一個標誌,以表明它應該這樣做 – Paulw11
嘿,謝謝,完全工作,你想發佈它作爲答案,所以我可以選擇它作爲解決? – ddikov