如何让UIBarButtonItem打开一个新的view controller swift 3
How to get UIBarButtonItem to open a new view controller swift 3
我想从 UIBarButtonItem 打开新的视图控制器。
func readQrCode(_ sender:UIBarButtonItem!) {
print("working")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "QRCodeViewController")
}
两种可能。如果您没有导航控制器(我通常有),请在右大括号之前添加此行:
self.present(vc, animated:true, completion:nil)
如果您有导航控制器,请改为添加:
self.navigationController?.pushViewController(vc, animated: true)
编辑:(调试导航控制器是否存在)
如果您更改 ?到一个!当你 运行 它时你会得到一个异常,然后导航控制器不存在。请显示您定义导航控制器的代码。我会在 AppDelegate 中这样做:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let startupVC = SomeViewController()
self.window! = UIWindow(frame: UIScreen.main.bounds)
let mainNavConn = UINavigationController(rootViewController: startupVC)
self.window!.rootViewController = mainNavConn
self.window!.backgroundColor = UIColor(red: 1.0, green: 0.0, blue: 0.5, alpha: 1.0)
self.window!.makeKeyAndVisible()
return true
}
您实际上可以遍历故事板,right-click UIBarButtom,将其连接拖动到您想要进行转场的视图控制器。只要您释放视图控制器上的点击,就会弹出一个界面,询问您想要使用哪种类型的 segue。然后,您可以选择显示详细信息。这将允许您在不输入任何代码的情况下创建一个 segue。
我想从 UIBarButtonItem 打开新的视图控制器。
func readQrCode(_ sender:UIBarButtonItem!) {
print("working")
let vc = self.storyboard?.instantiateViewController(withIdentifier: "QRCodeViewController")
}
两种可能。如果您没有导航控制器(我通常有),请在右大括号之前添加此行:
self.present(vc, animated:true, completion:nil)
如果您有导航控制器,请改为添加:
self.navigationController?.pushViewController(vc, animated: true)
编辑:(调试导航控制器是否存在)
如果您更改 ?到一个!当你 运行 它时你会得到一个异常,然后导航控制器不存在。请显示您定义导航控制器的代码。我会在 AppDelegate 中这样做:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let startupVC = SomeViewController()
self.window! = UIWindow(frame: UIScreen.main.bounds)
let mainNavConn = UINavigationController(rootViewController: startupVC)
self.window!.rootViewController = mainNavConn
self.window!.backgroundColor = UIColor(red: 1.0, green: 0.0, blue: 0.5, alpha: 1.0)
self.window!.makeKeyAndVisible()
return true
}
您实际上可以遍历故事板,right-click UIBarButtom,将其连接拖动到您想要进行转场的视图控制器。只要您释放视图控制器上的点击,就会弹出一个界面,询问您想要使用哪种类型的 segue。然后,您可以选择显示详细信息。这将允许您在不输入任何代码的情况下创建一个 segue。