В моей ViewControllerA, я пытаюсь показать ViewControllerB по телефону:IOS: Обнаружение dismissViewControllerAnimated при использовании UIModalPresentationStyle.OverCurrentContext
let VC2 = ViewControllerB()
VC2.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
presentViewController(VC2, animated: true, completion: nil)
Так содержание ViewControllerB показан на вершине ViewControllerA ,
При нажатии кнопки в ViewControllerB, это называется:
dismissViewControllerAnimated(true, completion: nil)
Однако viewWillAppear
из ViewControllerA не называется.
Если линия VC2.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
удаляется, то viewWillAppear
из ViewControllerA называется.
При использовании UIModalPresentationStyle.OverCurrentContext
, viewWillAppear
от ViewControllerA не вызывается. Как определить, ViewControllerB удален в ViewControllerA в этой ситуации? Я хочу запустить некоторые коды в ViewControllerA, но не используя completion
из dismissViewControllerAnimated
в ViewControllerB.
Благодарим вас за ответ. К сожалению, я не знаком с блоками завершения. Я провел несколько часов в Интернете, но до сих пор не могу понять, что делать. Можете ли вы, пожалуйста, показать мне пример или некоторые подсказки, с которых мне следует начать? Большое спасибо! – ehhhuang
На SO есть много ответов, которые должны вам помочь :) Как [это] (http://stackoverflow.com/questions/16324095/custom-completion-block-for-my-own-method) или [это ] (http://stackoverflow.com/questions/4081831/how-to-store-blocks-in-properties-in-objective-c) –
Благодарим вас за ссылки в Objective-C. Они помогли мне понять блоки завершения. Теперь у меня есть решение в Свифт. [Здесь] (http://studyswift.blogspot.tw/2015/11/using-completion-block-to-detect.html) - это и некоторые ссылки. – ehhhuang