gpt4 book ai didi

ios - 如何将 UIViewController 作为参数传递给 swift 3?

转载 作者:行者123 更新时间:2023-11-28 08:08:30 24 4
gpt4 key购买 nike

我正在尝试创建一个通用方法,我必须将 self(current UIViewController ) 作为参数传递。下面是方法:

  func getFBUserData(){

if let token = FBSDKAccessToken.current(){

print("Access Token: \(token.tokenString!)")

FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil){
self.dict = result as! [String : AnyObject]
print(result!)
print(self.dict)
var jsonObj = JSON(result!)
if let first_name = jsonObj["first_name"].string {
NSLog("first_name : \(first_name)")
}
NSLog("RESULT JSON : \(JSON(result!))")
//print("Access Token: \(FBSDKAccessToken.current())")
}
})
}

}

我修改如下:

func IsFaceBookPermisssionGranted(_ completion: @escaping (_ IsPermissionGranted: Bool, _ error_type:ErrorType)->()) {

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()

fbLoginManager.logIn(withReadPermissions: ["email"], from: UIViewController?) { (result, error) in
if (error == nil){
let fbloginresult : FBSDKLoginManagerLoginResult = result!
if fbloginresult.grantedPermissions != nil {
if(fbloginresult.grantedPermissions.contains("email"))
{
completion(true,nil)
}
}else{
completion(false,.AUTH_FAILED)
}
}else{
print("Error : \(error)")
completion(false,.AUTH_FAILED)
}
}
}

但是当我像上面那样传递 UIViewController 时,它说无法将“UIViewController.Type”类型的值转换为预期的参数类型“UIViewController!”

我能做些什么?

最佳答案

在 swift 3.0 中,你不能直接传递你的 UIViewController。首先,您可以创建一个 View Controller 对象。

例如,

let storyBoard = UIStoryboard.init(name: "Main", bundle: nil)
let yourVC = self.storyboard?.instantiateViewController(withIdentifier: "your_view_controller_Identifier") as! YourViewController

关于ios - 如何将 UIViewController 作为参数传递给 swift 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44411541/

24 4 0
文章推荐: html - Wordpress 模板 CSS 问题
文章推荐: c++ - 像这样操作 cv::Mat 的内部缓冲区是否安全?
文章推荐: javascript - AngularJs:AngularJS 部分中 标签的使用