AppDelegate не показывает кнопки раскадровки - PullRequest
0 голосов
/ 05 июля 2018

Я устанавливаю MainViewController, содержащий несколько ViewController, следующим образом:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        let pageController = UIPageViewController(
            transitionStyle: UIPageViewControllerTransitionStyle.scroll,
            navigationOrientation: UIPageViewControllerNavigationOrientation.horizontal,
            options: nil
        )

        let navigationController = MainViewController(rootViewController: pageController)
        navigationController.view.backgroundColor = UIColor.white

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let leftView = storyboard.instantiateViewController(withIdentifier: "VC1")
        let middleView = storyboard.instantiateViewController(withIdentifier: "VC2")
        let rightView = storyboard.instantiateViewController(withIdentifier: "VC3")

        navigationController.viewControllerArray = [leftView, middleView, rightView]

        self.window!.rootViewController = navigationController
        self.window!.makeKeyAndVisible()

        return true
    }
}

Мой MainViewController также имеет то, что должно быть плавающей кнопкой. Я добавил это в раскадровку (см. Рисунок ниже). Проблема в том, что кнопка не отображается. Как мне это показать? Я знаю, что каким-то образом эта проблема связана с тем, что я добавил MainViewController в AppDelegate, но я не уверен, как это скрывает кнопки.

enter image description here

1 Ответ

0 голосов
/ 05 июля 2018

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

Вам нужно что-то вроде:

let navigationController = storyboard.instantiateViewController(withIdentifier: "Main")
navigationController.viewControllers = [pageController]
...