2016-06-04 3 views
0

하나의 간단한 것을 구현하려고합니다. UISwitch를 전환하여 문자열 값을 전환하려고합니다.UISwitch가 제대로 작동하지 않습니다.

하지만, 얻을 수는, 필요하다면 나는 전체 코드를 표시 할 수 있습니다

 func switchIsChanged(interestedIn: UISwitch) { 
      if interestedIn.on == true { 
       print("UISwitch is ON") 
      } else { 
       print("UISwitch is OFF") 
      } 
     } 

     if self.Gender.text == "male" { 

      switchIsChanged(self.interestedIn) 
    } 

잘못된 것입니다. 나는 페이스 북에서 데이터를 가져 와서 성별을 이해하고, 성별에 따라 관심있는 가치를 설정한다. @ILideTau는 위에서 언급 한 바와 같이

import UIKit 
import FBSDKShareKit 
import FirebaseDatabase 
import FirebaseAuth 
import Firebase 

class Settings: UIViewController { 

@IBOutlet weak var UserImage: UIImageView! 
@IBOutlet weak var UserName: UILabel! 
@IBOutlet weak var UserSurname: UILabel! 
@IBOutlet weak var Gender: UILabel! 
@IBOutlet weak var interestedIn: UISwitch! 
@IBOutlet weak var GenderofInsterest: UILabel! 

var pictureURL : String? 
var interest = "" 

override func viewDidLoad() { 
    super.viewDidLoad() 


    let paramets = ["fields": "email, first_name, last_name, picture.type(large), gender"] 

    let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: paramets) 

    graphRequest.startWithCompletionHandler({ 

     (connection, result, error) -> Void in 

     if error != nil { 
      print (error) 
     } 

     if let first_name = result["first_name"] as? String { 

      self.UserName.text = first_name 

     } 

     if let last_name = result["last_name"] as? String { 

      self.UserSurname.text = last_name 

     } 

     if let picture = result["picture"] as? NSDictionary, data = picture["data"] as? NSDictionary, pictureUrl = data["url"] as? String { 

      self.pictureURL = pictureUrl 

      let fbUrl = NSURL(string: pictureUrl) 

      if let picData = NSData(contentsOfURL: fbUrl!) { 
       self.UserImage.image = UIImage(data: picData) 
      } 

     } 

     if let gender = result["gender"] as? String { 

      self.Gender.text = gender 

     } 


     let people = ProfileClass() 

     people.profileName = self.UserName.text 
     people.profileGender = self.Gender.text 
     people.profileSurname = self.UserSurname.text 
     people.profilePhotoUrl = self.pictureURL 
     people.SaveUser() 


     func switchIsChanged(interestedIn: UISwitch) { 
      if interestedIn.on == true { 
       print("UISwitch is ON") 
      } else { 
       print("UISwitch is OFF") 
      } 
     } 



     if self.Gender.text == "male" { 

      switchIsChanged(self.interestedIn) 

     } 


    }) 



}} 
+0

나는 당신이 원하는 것이 '거짓말'이라고 생각한다. 그것은 사실 일 수도 거짓 일 수도있다. 'UISwitch'는 실제 GUI 스위치입니다. –

+0

@ILkeTau 유감스럽게도 미안합니다. 유치원. 부검을 반환합니다. 실제로 UISwitch.on == true를 사용할 필요는 없습니다. –

답변

1

, 직접 당신이 {didSet에서 상태를 변경할 때 스위치의 상태를 유지하고 업데이트 UI 것, 단지 BOOL 변수를 만들고, 그 대신에, UISwitch 상태에서 작동하지합니다 } 종결 :

@IBOutlet weak var interestedInSwitch: UISwitch! 

var interstedInState: Bool = false { 
    didSet { 
     interestedInSwitch.on = interstedInState 
    } 
} 
func updateInterstedInState(newValue: Bool) { 
    interstedInState = newValue 
} 
관련 문제