为登录用户触发 Segue
Posted
技术标签:
【中文标题】为登录用户触发 Segue【英文标题】:Trigger Segue for Logged In User 【发布时间】:2015-06-28 10:54:17 【问题描述】:在我的登录视图控制器中,我检查用户是否已登录。如果是,我希望他们通过 segue 重定向到个人资料页面,如果不是,则保留并使用他们的凭据登录。
segue 由于某种原因没有执行,尽管我确信 currentUser 设置正确,并且在使用 UIAlert 测试时它显示正确。
以下是代码,注释掉的部分仅用于警报
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var currentUser = PFUser.currentUser()
if currentUser != nil
/*let alert = UIAlertView()
alert.title = "Welcome Back!"
alert.message = "You are logged in!"
alert.addButtonWithTitle("Ok")
alert.show()*/
self.performSegueWithIdentifier("showProfileSegue", sender: self)
else
let alert = UIAlertView()
alert.title = "Stranger"
alert.message = "You will be requested to enter your details"
alert.addButtonWithTitle("Ok")
alert.show()
我在两个视图之间设置了标识符为“showProfileSegue”的segue。
谢谢
【问题讨论】:
【参考方案1】:AFAIK viewDidLoad()
不是视图控制器生命周期中推送 segue 的正确位置。因为初始视图还没有出现。您是否尝试过从viewDidAppear()
推送它?
如果您确定从生命周期方法中推送 segue 是实现您想要的正确方法。但请记住,某些生命周期方法可以重复调用。如果登录屏幕在每个会话中只出现一次,那也许没问题。
可能还值得通过按测试按钮来测试您的 segue 和 prepareForSegue
是否按预期运行。
【讨论】:
Simons 它确实在 ViewDidAppear 中工作...完全跳过我把它放在那里,谢谢。以上是关于为登录用户触发 Segue的主要内容,如果未能解决你的问题,请参考以下文章