我试图在不使用情节提要的情况下搜索或演示另一节课。我将应用程序委托更改为我认为必需的代码。现在没有错误,但是当我按下按钮时什么也没有改变。下面是应用程序委托和主视图控制器类。
应用代理
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")
}
答案 0 :(得分:0)
与push
区别present
。你在说
self.navigationController?.pushViewController(newViewController, animated: true)
但是您没有导航控制器;您的根视图控制器是Vince,而不是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))