如何在没有故事板Swift的情况下推出新视图

时间:2015-12-31 00:03:07

标签: ios swift uiviewcontroller uinavigationcontroller pushviewcontroller

首先,我根本不想使用故事板。我能够“呈现”目标视图控制器,但我无法通过顶部的标准iOS后退按钮显示它。我的理解是我可以通过推动控制器而不是呈现它来实现这一点。我没有任何错误,但没有任何反应。

在按钮上单击此代码即可运行。注释代码成功呈现了ForgotPasswordPage:

//更改忘记密码页

func forgotPasswordSwitch(sender: UIButton!) { 
   //let ForgotPassword:ForgotPasswordPage = ForgotPasswordPage()
   //self.presentViewController(ForgotPassword, animated: true, completion: nil)
    let ForgotPassword = ForgotPasswordPage()
    self.navigationController?.pushViewController(ForgotPassword, animated: true)
}

2 个答案:

答案 0 :(得分:2)

您必须手动创建UINavigationcontroller才能获得后退栏。为此,您可以使用this answer中的代码,通过使用以下代码实现此目的:

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
var nav1 = UINavigationController()
var mainView = ViewController() //ViewController = Name of your controller
nav1.viewControllers = [mainView]
self.window!.rootViewController = nav1
self.window?.makeKeyAndVisible()

这里只需将您想要在导航控制器下的所有ViewControllers添加到数组中,然后在它们之间进行推送。

希望有帮助,朱利安

答案 1 :(得分:0)

我知道有时以编程方式开发应用程序要好得多,但有很多时候Storyboard可以为您节省大量时间。你只是在这种情况下使用它......

1)在Storyboard中,本地化要启用的视图控制器以进行推送

2)选择它并找到"编辑器"在你的顶栏

3)选择Editor-> Embed In-> Navigation Controller

现在您的视图控制器已准备好推送