PFLoginViewController如何在登录屏幕和主页面之间切换?迅速

时间:2015-09-24 19:56:57

标签: ios objective-c swift uinavigationcontroller pfloginviewcontroller

我正在尝试使用PFLoginViewController为我的应用创建一个简单的登录屏幕。我遇到的问题是能够根据<html> <body> <form action="" method="post" ectype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"></br> <input type="submit" name="submit" value="Submit"> </form> <?php if(isset($_POST['submit'])) { $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 20000000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; }enter code here } ?> </body> </html> 输出在登录屏幕和应用程序主页之间切换。

我能够使用这种方法在Objective C中完成此任务:

  

AppDelegate.m

enter image description here enter image description here

  

LogInViewController.m

enter image description here

enter image description here

我在我的新应用程序中使用Swift并尝试复制我在Objective C中使用的方法但是我收到此错误并且模拟器全黑。]

enter image description here

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

  

的AppDelegate

enter image description here

  

LoginVC

enter image description here

我已经做了一些调查并且我已经看到.currentUser()而不是使用viewDidLoad这是一个问题,但我没有看到应用程序问题,因为它在Objective C中有效viewWillAppear中的didFinishLaunchingWithOptions以及PFLoginViewController的委托方法都没有在viewDidLoad中调用。

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

2 个答案:

答案 0 :(得分:1)

我解决了我遇到的问题。

  

的AppDelegate

enter image description here

而不是presentViewController我使用了pushViewController

enter image description here

答案 1 :(得分:0)

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