Как перейти без использования раскадровки (Swift5) - PullRequest
0 голосов
/ 03 июня 2019

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

APE DELEGATE

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow(frame: UIScreen.main.bounds)
    let roootViewController = Vince(nibName: nil, bundle: nil)

    window?.rootViewController = roootViewController

    window?.makeKeyAndVisible()

    return true
}

КОНТРОЛЛЕР ПРОСМОТРА

        @objc func moveRight() {

    let newViewController = two()
    self.navigationController?.pushViewController(newViewController, animated: true)
    print("es")
}

1 Ответ

0 голосов
/ 03 июня 2019

Отличают push от present.Вы говорите

self.navigationController?.pushViewController(newViewController, animated: true)

Но у вас нет контроллера навигации;Ваш корневой контроллер представления - это Винс, а не UINavigationController.Так что push неуместно, а self.navigationController? - это nil, и ваша команда ничего не делает.

Измените

self.navigationController?.pushViewController(newViewController, animated: true)

на

self.present(newViewController, animated: true)

, если хотитеувидеть, что на самом деле что-то происходит.

В качестве альтернативы используйте UINavigationController при создании исходного контроллера корневого представления в делегате приложения:

let roootViewController = UINavigationController(rootViewController: Vince(nibName: nil, bundle: nil))
...