UIViewController实例问题

时间:2016-05-13 05:46:00

标签: ios uiviewcontroller swift2

我正在尝试在单独的swift文件(Login.swift)上设置NSUserDefaults变量以确定我的用户是否已登录。如果用户确实已登录,则LoginViewController将消失并显示HomeViewController。但是我被抛出这个错误

  

使用实例成员' dismissViewControllerAnimated'在类型' UIViewController&#39 ;;你的意思是使用类型' UIViewController'代替?

这是我的代码

//success
else if value["username"] != nil && value["password"] == nil && value["message"] == nil
{
 NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn")

 LoginViewController.dismissViewControllerAnimated(true, completion:nil)

 if let api_key = value["api_token"].string
 {
    print("The token is " + api_key)
 }
 else
 {
    print("error parsing api token")
 }
 //pass data to Users class
 _ = Users.init(Name: value["name"].string, Email: value["email"].string, Id: value["id"].int, ProfilePicture: value["profile_picture"].string, Username: value["username"].string)
 }

UIViewController error

2 个答案:

答案 0 :(得分:0)

dismissViewControllerAnimatedInstance方法不是class方法。看起来你正在和班级打电话。

如果您使用同一个控制器:

[topVC dismissViewControllerAnimated:YES completion:nil];

如果您不在该控制器中,请使用

 UIViewController *topVC =  [UIApplication sharedApplication].keyWindow.rootViewController.presentedViewController;
 [topVC dismissViewControllerAnimated:YES completion:nil];

答案 1 :(得分:0)

创建LoginViewController的对象。 使用该对象然后调用dismissViewControllerAnimated函数。 不允许从班级名称直接打电话