0

我正在尝试使用 PFLoginViewController 为我的应用程序创建一个简单的登录屏幕。我遇到的问题是能够根据.currentUser()输出在登录屏幕和应用程序的主页之间切换。

我能够使用此方法在 Objective C 中完成此操作:

AppDelegate.m

在此处输入图像描述 在此处输入图像描述

登录视图控制器.m

在此处输入图像描述

在此处输入图像描述

我在我的新应用程序中使用 Swift,并试图复制我在 Objective C 中使用的方法,但我收到了这个错误,模拟器全黑。]

在此处输入图像描述

这是我的代码在 swift 中的样子。

应用委托

在此处输入图像描述

登录VC

在此处输入图像描述

我已经对此进行了一些研究,我发现这是一个问题,viewDidLoad而不是使用viewWillAppear,但我没有看到我的问题的应用程序,因为它在 Objective C 中工作,didFinishLaunchingWithOptions并且 PFLoginViewController 的委托方法也没有被调用在viewDidLoad.

关于我的大错误是什么的任何线索?

4

2 回答 2

1

我解决了我遇到的问题。

应用委托

在此处输入图像描述

而不是presentViewController我用pushViewController

在此处输入图像描述

于 2015-09-24T21:39:43.403 回答
0

在 Obj-C 中,您从窗口(根视图控制器)获取导航控制器,因此它被呈现。在 swift 中,您正在创建一个新的导航控制器,然后您可能会再次使用根视图控制器创建另一个新的导航控制器。这些都没有呈现,因此除了呈现它们之外,试图将它们用于其他用途是行不通的。这是两个代码示例之间的重大逻辑变化。没有什么可以阻止您在每种语言中采用相同的方法,它应该可以解决您的错误。

于 2015-09-24T20:11:47.477 回答