Действительно ли возможно определить, представлен ли ViewController как Модальный?

Действительно ли возможно проверить в классе ViewController, что это представлено как модальный контроллер представления?

115
задан Bo Persson 22 July 2012 в 19:44
поделиться

3 ответа

Это должно работать.

if(self.parentViewController.modalViewController == self)…
6
ответ дан 24 November 2019 в 02:23
поделиться

Подобный взлом может сработать.

UIViewController* child = self;
UIViewController* parent = child.parentViewController;
while (parent && parent.modalViewController != child) {
    child = parent;
    parent = child.parentViewController;
}
if (parent) {
    // A view controller in the hierarchy was presented as a modal view controller
}

Однако я думаю, что мой предыдущий ответ - более чистое решение.

0
ответ дан 24 November 2019 в 02:23
поделиться

Если его нет, вы можете определить свойство для этого (presentedAsModal) в вашем подклассе UIViewController и установить его в YES перед представлением ViewController как модального представления.

childVC.presentedAsModal = YES;
[parentVC presentModalViewController:childVC animated:YES];

Вы можете проверить это значение в переопределении viewWillAppear.

Я полагаю, что не существует официального свойства, определяющего способ представления, но ничто не мешает вам создать свое собственное.

17
ответ дан 24 November 2019 в 02:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: