Представить диспетчер просмотра раскадровки из делегата приложения?

У меня есть подкласс класса контроля SignInViewController , который используется для входа в систему, который может понадобиться в любое время. Вместо того, чтобы каждый контроллер просмотра в моем приложении прослушивал уведомление, которое требуется для входа в систему, я бы предпочел, чтобы делегат приложения сделал это.

Но как я могу вызвать его из моего делегата приложения?

Я помещаю SignInViewController в свою основную раскадровку? Если да, то как мне получить доступ к моей раскадровке из моего делегата приложения? Или другой подход лучше?

2 Solutions collect form web for “Представить диспетчер просмотра раскадровки из делегата приложения?”

Вы всегда можете ссылаться на делегата вашего приложения через синтаксис UIApplication. Оттуда вы всегда можете получить свой контроллер корневого представления. С вашим контроллером корневого представления вы можете получить ссылку на раскадровку.

После того, как у вас есть своя доска объявлений, вы делаете экземпляр экземпляра контроллера вида, который вы хотите. Представьте это.

 AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; MainViewController *mvc = (MainViewController *)appDelegate.window.rootViewController; LoginViewController *lvc = [mvc.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; [currentVC presentModalViewController:lvc animated:YES]; 

Возможно, существует более прямой способ получить ссылку на вашу раскадровку, но это почти всегда получит ее для вас.

Чтобы показать контроллер просмотра из любого места (включая делегата приложения), я успешно использовал этот код в iOS 8+ (я не уверен в более ранней совместимости). Он будет представлен с модального представления, если он есть.

 YOURAppDelegate *appDelegate = (YOURAppDelegate *)[[UIApplication sharedApplication] delegate]; UINavigationController *rootNavC = (UINavigationController *)appDelegate.window.rootViewController; UIViewController *topVC = rootNavC.topViewController; UIViewController *myNewVC = [rootNavC.storyboard instantiateViewControllerWithIdentifier:<YOUR STORYBOARD ID>]; if (topVC.presentedViewController) { if ([topVC.presentedViewController class] == [UINavigationController class]) { dispatch_async(dispatch_get_main_queue(), ^{ [((UINavigationController*)topVC.presentedViewController) pushViewController:myNewVC animated:YES]; }); } else { dispatch_async(dispatch_get_main_queue(), ^{ [topVC.presentedViewController.navigationController pushViewController:myNewVC animated:animated]; }); } } else { dispatch_async(dispatch_get_main_queue(), ^{ [rootNavC pushViewController:myNewVC animated:animated]; }); } 

Обычно я обертываю это методом удобства и передаю мой экземплярный контроллер представления. Для OP – вы должны создать SignInViewController в раскадровке, назначить ему уникальный идентификатор раскадровки, а затем заменить этот идентификатор в приведенном выше коде.

  • Как вставить пользовательский вид xib в сцену раскадровки?
  • Подготовьтесь к Segue в Swift
  • Фон из черепицы для экрана Launch Screen.nib
  • IOS: обнаружение жестов жесткого диска в определенном месте на UIView
  • application: didFinishLaunchingWithOptions: создается уведомление об увольнении перед контроллером назначения
  • Ошибка Xcode? Невозможно сделать UITableViewCell с «подробным правым» стилем в раскадровке
  • Как ограничить максимальную ширину UILabel?
  • iOS 7: Рамка замедленного просмотра для «Ярлык-этикетка» будет отличаться во время выполнения
  • Создание контроллеров представления popup для Iphone в интерфейсе Builder
  • Создайте автономный вид в раскадровке для использования программно
  • Как правильно настроить вид SKView и SKScene
  • Interesting Posts

    Как сохранить NSMutableArray

    клавиатура не появляется после возврата из ModalViewController

    RMPath мерцает и «вибрирует» при прокрутке RMMapView (MapBox SDK)

    Как можно добавлять или удалять дополнительные представления UICollectionView

    Построение инфраструктуры iOS без архитектуры armv7s и x86_64 по файлу жира

    Как восстановить после выполнения: git reset –hard HEAD

    target указывает тип продукта «com.apple.product-type.bundle.ui-testing», но нет такого типа продукта для платформы «iphonesimulator»

    Как у меня есть дополнение в нижней части моего UITextView, например, в Mail.app, так что текст не сглаживается?

    Как создать 3D-сетку в сценарии

    Включение как многостраничных, так и однострочных стилей в TableView

    Подзаголовок UITextField UIImageView не отвечает на события касания

    iOS, что мне следует устанавливать в моем проекте?

    Синтезированное свойство копирования не освобождается от ARC

    Как обрабатывать события с несколькими сегментами управления в одном представлении

    iOS: исключить игроков из GKTurnBasedMatch

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.