mat*_*att 35 uinavigationcontroller pushviewcontroller swift
所以我有一个登录视图,成功登录后,它会进入导航控制器的第一个视图,然后用户可以更深入地进入设置视图,然后进入注销视图.此注销应该将用户带回登录视图(不是导航控制器的一部分).它适用于以下代码:
let loginViewController = self.storyboard!.instantiateViewControllerWithIdentifier("Login") as? LoginViewController
self.navigationController!.pushViewController(loginViewController!, animated: true)
Run Code Online (Sandbox Code Playgroud)
但登录视图显示顶部的导航栏,它不应该这样做,可能还有self.navigationController!.pushViewController我应该使用的东西吗?
All*_*eld 77
SWIFT:您应该使用展开segue.
首先,将以下行放在您的FirstViewController:
@IBAction func prepareForUnwind(segue: UIStoryboardSegue) {
}
该函数实际上没有任何代码.
LogoutViewController通过控制拖动从黄色按钮到退出按钮创建一个展开的segue .像这样:选择为其创建的展开segue FirstViewController.
更改segue标识符:
转到代码LogoutViewController并正常调用unwind segue:
self.performSegueWithIdentifier("unwindToViewController1", sender: self)
斯威夫特4
self.performSegue(withIdentifier: "unwindToViewController1", sender: self)
Vas*_*mil 27
如果您正在使用故事板,请查看放松信号.
您只需要在控制器中创建展开选项,您希望导航到:
@IBAction func unwindToMe(segue: UIStoryboardSegue){}
Run Code Online (Sandbox Code Playgroud)
然后从故事板创建segue.
当您需要导航回来时,只需performSegue使用刚刚创建的展开segue标识符调用该方法.
如果你只想从代码中做到这一点,那么你可以写下这样的东西:
let loginViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Login")
UIApplication.sharedApplication().keyWindow?.rootViewController = loginViewController
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您将应用程序设置为初始状态.
Ren*_*rez 25
如果您有导航控制器,请从您的控制器使用:
self.navigationController?.popToRootViewControllerAnimated(true)
Run Code Online (Sandbox Code Playgroud)
小智 13
试试吧
self.view.window?.rootViewController?.dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
这将使您回到应用程序流程的开头.
更新到Swift 4(感谢@javaBeast)
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
小智 0
我建议您从一个 ViewController 到另一个 ViewController,而不是像那样推送 ViewController。
因此,首先,您需要从第一个 ViewController 按住 Ctrl + clic 到您的登录 ViewController,然后在属性检查器中为其指定一个标识符。
然后,您所要做的就是:
self.performSegueWithIdentifier("yourIdentifier", sender: self)
Run Code Online (Sandbox Code Playgroud)
现在,对于导航栏,我建议您从登录视图中删除导航控制器,并将其关联到您的第一个视图。它将从您的登录视图中删除导航栏。
| 归档时间: |
|
| 查看次数: |
33860 次 |
| 最近记录: |