В чем разница между currentContext и overCurrentContext? - PullRequest
0 голосов
/ 07 октября 2019

Документы для currentContext и overCurrentContext имеют идентичное описание.

Различия, которые я могу заметить:

  • с тех пор, когда они доступны:

    @available(iOS 3.2, *)
    case currentContext
    
    @available(iOS 8.0, *)
    case overCurrentContext
    
  • С currentContext, после закрытия представленного контроллера представления вызывается viewWillAppear контроллера покрытого представления (который не долженбыть контроллером представления, который обеспечивает контекст). С overCurrentContext он не вызывается.

Есть ли другая разница?

1 Ответ

2 голосов
/ 07 октября 2019

Это точно так же, как разница между fullScreen и overFullScreen. Первый удаляет вид из области, которую он покрывает;второй нет, он просто покрывает его.

(В обоих случаях эту разницу легко увидеть визуально, если цвет фона основного представления вашего представленного контроллера имеет некоторую прозрачность. Но различия в поведении еще большеважно, некоторые представления становятся несчастными, когда они резко вырываются из иерархии представлений, поэтому может быть лучше оставить их на месте и использовать вариант .over.)

с currentContext, после закрытиявызывается представленный контроллер представления, viewWillAppear из покрытого контроллера представления (который не должен быть контроллером представления, который обеспечивает контекст). С overCurrentContext он не вызывается.

Это всего лишь следствие того, что я только что сказал. С over, viewWillAppear не вызывается при увольнении, потому что вид никогда не исчезал с самого начала;это просто сидело позади представленного представления. Опять же, это полностью параллельно fullScreen и overFullScreen.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...