如何让UIBarButtonItem打开一个新的视图控制器swift 3

时间:2017-02-21 12:38:25

标签: ios swift uibarbuttonitem

我想从UIBarButtonItem打开新的视图控制器。

func readQrCode(_ sender:UIBarButtonItem!) {
            print("working")
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "QRCodeViewController")
        }

2 个答案:

答案 0 :(得分:1)

您实际上可以浏览故事板,右键单击UIBarButtom,将其连接拖动到要使segue发生的视图控制器。一旦您释放视图控制器上的单击,就会弹出一个界面,询问您要使用哪种类型的segue。然后,您可以选择显示详细信息。这样就可以在不输入任何代码的情况下创建一个segue。

答案 1 :(得分:0)

有两种可能性。如果您没有导航控制器(我通常这样做),请在右括号前添加此行:

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
        }