更改视图控制器Swift 3
我正在学习ios开发,并试图制作一个具有两个视图的应用程序,每个视图都有一个按钮,当它按下时会将您发送到另一个视图。我在故事板中设置了两个场景,并将按钮连接到一个动作。根据我读过的内容,使用instantiateViewController和一个标识符应该足以改变视图。但是当我运行模拟器时,会出现第一个视图,但点击按钮不起作用。我甚至不会收到错误消息。更改视图控制器Swift 3
@IBAction func SwitchViews(_ sender: UIButton) {
//Switch view controllers
let vc = storyboard?.instantiateViewController(withIdentifier: "second")
navigationController?.pushViewController(vc!, animated: true)
}
你有你嵌入故事板导航controller.In代码导航控制器可选的,所以控制器无法获取导航控制器。
你必须将你的第一个故事板嵌入导航控制器它会工作。你可以通过在Xcode>Editor>Embed In>Navigation Controller
。
只是一个建议,如果你打算开发不使用导航视图的应用程序,你已经做了些什么。在单个视图应用程序中连接多个视图的正确方法就是这样。我将在步骤
第1步解释 - 一个视图控制器添加到您的故事板
第2步 - 创建一个从文件中可可触摸类 - 新 - 文件(命令+ N也将这样的伎俩)
!!! 确保它的可可触摸类 !!!
第3步 - 保留UIViewController的子类输入类名保持它对视图的独特性,因此代码对每个人来说看起来干净清晰。
第4步 - 点击并完成。现在转到故事板,将类名添加到您在身份检查器中创建的视图控制器中,并添加故事板标识符名称
第5步 - 将您的按钮链接到swift文件中的操作,如TouchUpInside和添加以下代码
@IBAction func startButtonPressed(_ sender: UIButton) {
let controllerVariable = self.storyboard?.instantiateViewController(withIdentifier: "storyboardIdentifier") as! ViewControllerClassName
self.present(controllerVariable, animated: true, completion: nil)
}
这应该创建一个视图应用程序,然后建立你的应用程序有多个屏幕做的伎俩。
但是,如果您的应用程序使用IOS默认导航控制器样式,如带导航条的导航栏和后退按钮,则最佳做法是使用导航控制器。
如果没有,那么您可以完全控制您按照上述步骤设计用户界面的方式。
希望这有助于:)
你有导航控制器嵌入到你的第一个视图控制器 –
我没有,是像一个容器,以便容纳其他两种观点? –
如果您在导航控制器中推送viewcontroller,则需要将其嵌入到第一个视图控制器中,然后解决问题 –