ios - 使用 viewDidAppear 自动登录不利用导航 Controller

标签 ios swift

我使用 Parse.com 创建了登录/注册流程(效果很好)。在我的主屏幕(用户访问登录和注册屏幕)上,我添加了以下代码以在用户每次打开我的应用程序时自动登录:

override func viewDidAppear(animated: Bool) {

    if PFUser.currentUser() != nil {

       self.performSegueWithIdentifier("test", sender: self)

    }

}

“test”是从主屏幕创建到 TableView Controller 的模式序列,该 Controller 在用户登录或注册后呈现给用户。需要明确的是,当主视图 Controller 检测到用户已登录时,它会绕过登录和注册屏幕,直接进入 TableView Controller 。

以下是我的 Storyboard流程:

Storyboard Flow

1:主视图 Controller -> 导航 Controller 1 -> 登录 View Controller -> TableView Controller 1

2:主视图 Controller -> 导航 Controller 2 -> 注册 View Controller -> TableView Controller 1

问题是这样的:

当用户登录或注册(使用相应的屏幕)时,会将他们带到 TableView Controller ,导航栏位于屏幕顶部(这正是我想要的)。但是,当登录应用程序并且用户已经登录时,当它自动将用户带到 TableView Controller 时,根本没有标题。由于某种原因,它似乎忽略了它是导航 Controller 的一部分。

我希望以上内容很清楚,但如果您需要任何说明,请告诉我。我知道我的 Storyboard设置存在一些问题...任何帮助将不胜感激。

谢谢!

最佳答案

我个人不喜欢你的ViewCycle,它应该是

  1. 导航 Controller
  2. 主VC
  3. 来自 MainVC 的登录推送
  4. 注册来自 MainVC 的推送
  5. 从登录推送表列表

这应该是您的代码的理想解决方案。

然后这段代码就会像 Charm 一样工作

override func viewDidAppear(animated: Bool) {

    if PFUser.currentUser() != nil {

       self.performSegueWithIdentifier("test", sender: self)

    }

}

关于ios - 使用 viewDidAppear 自动登录不利用导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31996217/

相关文章:

ios - 从动态数组的部分中的标题中返回标题

ios - 在 Swift 中将 JsonString int 值转换为字符串

arrays - 在标签中显示 10 个整数的数组

ios - 如何在 iOS 中通过键盘显示 UIView

ios - Xcode 12 问题 - 找不到目标 'FrameworkName' 的模块 'arm64-apple-ios-simulator';找到 : x86_64-apple-ios-simulator, x86_64

ios - 推送时隐藏自定义标签栏

ios - 值未被复制

swift - 如何将计算属性的 'setter' 设置为私有(private)?

iphone - 如何构建 ilibjingle

ios - 在节点暂停的情况下开始场景