Действительно ли возможно проверить в классе ViewController, что это представлено как модальный контроллер представления?
Это должно работать.
if(self.parentViewController.modalViewController == self)…
Подобный взлом может сработать.
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
}
Однако я думаю, что мой предыдущий ответ - более чистое решение.
Если его нет, вы можете определить свойство для этого (presentedAsModal
) в вашем подклассе UIViewController и установить его в YES
перед представлением ViewController как модального представления.
childVC.presentedAsModal = YES;
[parentVC presentModalViewController:childVC animated:YES];
Вы можете проверить это значение в переопределении viewWillAppear
.
Я полагаю, что не существует официального свойства, определяющего способ представления, но ничто не мешает вам создать свое собственное.