【发布时间】:2014-10-01 14:33:24
【问题描述】:
我在测试我的应用时遇到了问题。您可以在下图中看到我是如何设置视图的:
问题是一切正常。我用我的测试用户登录,下面的代码执行loginSegue,
self.performSegueWithIdentifier("loginSegue", sender: self)
这是一个模态序列,将我的登录“视图控制器”与“主页选项卡栏视图控制器”链接起来。我被重定向到“初始提要视图控制器”。一切都很好。但是当我去我的“设置视图控制器”,然后点击注销按钮,它有以下代码(IBAction):
@IBAction func logoutAction(sender: AnyObject) {
PFUser.logOut()
self.performSegueWithIdentifier("logoutSegue", sender: self)
}
我的应用程序崩溃了。我的注销按钮的操作有一个转场,可将您带回登录“视图控制器”,但首先将用户注销(顺便说一下,我正在使用 Parse)。这种“Push”segue 称为 logoutSegue。我试图将 segue 更改为“Popover”segue。这解决了这个问题,有点,因为这样做会弄乱我的“注册视图控制器”,因为在登录“视图控制器”时,我单击“注册”按钮并且应用程序无论如何都会崩溃。
编译器告诉我以下代码行是导致错误的代码:
self.performSegueWithIdentifier("logoutSegue", sender: self)
我不明白为什么会这样。我想这与我如何设置“导航控制器”和“主页选项卡栏视图控制器”有关。或者也许与代表一起?
你能帮我解决这个问题吗?如果您有 Objective-C 方法,请随时提出解决方案,我可以尝试将其从 Objective-C 转换为 Swift。
除了帮助我解决我的问题之外,我想知道您是否知道 Segue 类型(推送、模态、弹出框、替换)之间的区别以及我应该何时使用它们。我阅读了 Apple 的文档,但我仍然不完全理解它。
提前感谢您的建议和回复。
【问题讨论】:
标签: objective-c uinavigationcontroller swift uistoryboard uistoryboardsegue