iOS-Как проверить, присутствует ли модальное представление
есть ли способ проверить, присутствует ли модальное представление? Я хотел бы запустить метод только в том случае, если модальное представление присутствует. Кроме того, если у меня есть несколько модальных представлений, есть ли способ проверить, присутствует ли определенное модальное представление.
Я использую следующий код для представления и отклонения модальных представлений:
[self presentModalViewController:myModalView animated:YES];
[self dismissModalViewControllerAnimated:YES];
спасибо заранее!
Ура,
Эван
PS. Мой модальное представление есть представление-контроллер, но я хотел бы проверить, если модальное представление-это подарок от отдельный класс, который работает асинхронно.
4 ответов:
вы проверяете наличие модального контроллера вида от родительского контроллера вида? Если это так, вы можете просто проверить свойство modalViewController этого контроллера вида:
BOOL modalPresent = (self.modalViewController);Если вы хотите проверить конкретный контроллер модального представления, вы можете получить имя класса контроллера модального представления следующим образом:
NSString *modalClassName = NSStringFromClass([self.modalViewController class]);
Вы можете проверить с помощью:
self.presentedViewController, который возвращаетThe view controller that is presented by this view controller, or one of its ancestors in the view controller hierarchy.
что сработало для меня следующее:
// this is the trick: set parent view controller as application's window root view controller UIApplication.sharedApplication.delegate.window.rootViewController = viewController; // assert no modal view is presented XCTAssertNil(viewController.presentedViewController); // simulate button tap which shows modal view controller [viewController.deleteButton sendActionsForControlEvents:UIControlEventTouchUpInside]; // assert that modal view controller is presented XCTAssertEqualObjects(viewController.presentedViewController.class, MyModalViewController.class);насколько я проверил, это работает для iOS7 и iOS8. Однако не пробовал на iOS6.
вы можете проверить наличие модальных
view controllerот родительскогоview controllerif ( [[self presentingViewController] presentingViewController] ) { }
Comments