UINavigationController, UITabBarController, UITableViewController - PullRequest
0 голосов
/ 28 сентября 2018

В настоящее время у меня есть приложение, настроенное с UINavigationController в качестве начального представления, которое имеет UITableViewController в качестве корневого контроллера представления.Приложение работает нормально до этого момента.У меня есть следующий код в AppDelegate.swift:

class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    let favLibrary = FavLibrary()

    let navController = window!.rootViewController as! UINavigationController
    let favController = navController.topViewController as! FLViewController
    favController.favLibrary = favLibrary

    return true
}

Я пытаюсь реализовать UITabBarController, чтобы я мог переключаться между двумя UITableViewController на одном уровне (Избранное и библиотека) с помощью панели вкладок.

Я встраиваю каждый VC в свой собственный контроллер навигации, затем встраиваю два контроллера навигации в один контроллер панели вкладок.

При запуске приложения происходит сбой со следующей ошибкой:

Не удалось привести значение типа «UITabBarController» (0x115f9e430) к «UINavigationController» (0x115f971d0).2018-09-27 15: 49: 43.811377-0700 appName [3675: 954448] Не удалось привести значение типа «UITabBarController» (0x115f9e430) к «UINavigationController» (0x115f971d0).

Как исправить кодв AppDelegate, чтобы сохранить функциональность с новым расположением панели вкладок и контроллеров навигации?

1 Ответ

0 голосов
/ 28 сентября 2018

Если я правильно понимаю ваш вопрос, я полагаю, что вы должны сначала получить доступ к tabBarController, а затем получить содержащиеся в нем контроллеры представления, которые должны быть списком контроллеров навигации.Затем вы можете получить свой контроллер вида внутри выбранного контроллера навигации:

let tabBar = window!.rootViewController as! UITabBarController
let targetTabNav = tabBar.viewControllers![1] as! UINavigationController // change index to what you want
let targetVc = targetTabNav.viewControllers.first!
// Do what you want with the target Vc ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...