ide*_*ara 1 objective-c uinavigationcontroller uistoryboard uistoryboardsegue swift
我在测试我的应用时遇到了问题.您可以在下图中看到我如何设置我的视图:

问题是一切正常.我用我的测试用户登录,以下代码执行loginSegue,
self.performSegueWithIdentifier("loginSegue", sender: self)
Run Code Online (Sandbox Code Playgroud)
这是一个模态segue,它将我的登录"View Controller"与"Home Tab Bar View Controller"相关联.我被重定向到"初始Feed视图控制器".一切都很好.但是当我转到我的"设置视图控制器",然后单击"注销"按钮,其中包含以下代码(IBAction):
@IBAction func logoutAction(sender: AnyObject) {
PFUser.logOut()
self.performSegueWithIdentifier("logoutSegue", sender: self)
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序崩溃了.我的Logout按钮的动作有一个segue,它会将你带回登录"View Controller",但会先将用户记录下来(顺便说一下,我正在使用Parse).这个"推"segue称为logoutSegue.我试图将segue改为"Popover"segue.这解决了问题,有点,因为这样做会弄乱我的"注册视图控制器",因为在登录"视图控制器"时,我点击"注册"按钮,应用程序无论如何都会崩溃.
编译器告诉我,以下代码行是导致错误的代码:
self.performSegueWithIdentifier("logoutSegue", sender: self)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样.我想它与我的"导航控制器"和"主页标签栏视图控制器"设置有关.或者与代表一起?
你能帮我解决这个问题吗?如果你有Objective-C方法没关系,请随意提出一个解决方案,我可以尝试将它从Objective-C转换为Swift.
除了帮助我解决问题之外,我想知道你是否知道Segue类型(Push,Modal,Popover,Replace)之间的区别是什么,以及何时应该使用它们.我阅读了Apple的文档,但我仍然完全不理解它.
提前感谢您的建议和回复.
您不想使用传统的segue返回登录屏幕.普通的segue类型始终会创建目标视图控制器的新副本.相反,您希望将控制权返回给调用您的视图控制器.
您需要在注销时设置展开segue.这是如何做.
1)在ViewController添加此功能的代码中:
@IBAction func comeHereOnLogout(segue:UIStoryboardSegue) {
println("Yay, Logged Out!")
}
Run Code Online (Sandbox Code Playgroud)
2)控制 - 从view controller您顶部的图标拖动到您顶部Settings View Controller的exit图标,Settings View Controller然后comeHereOnLogout从显示的弹出窗口中进行选择.


在文档大纲中选择该segue,并在Attributes Inspector中为其指定标识符,例如"logoutSegue".


然后你可以在代码中触发这个segue:
self.performSegueWithIdentifier("logoutSegue", sender: self)
Run Code Online (Sandbox Code Playgroud)
3)或者,您可以unwind segue从" 注销"按钮连接到您的注销exit顶部的图标Settings View Controller.在这种情况下,此segue将替换您的注销按钮操作.同样,你想给这个segue一个名字,比如"logoutSegue".

在这种情况下,您将注销代码准备为segue:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if segue.identifier == "logoutSegue" {
PFUser.logOut()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |