2016-12-24 60 views
-1

我已經創建了一個註冊視圖(class SignUp: UICollectionViewCell),我有一個代碼再次關閉該視圖例如與一個關閉按鈕。如何從不同的類運行關閉視圖功能?

我發動不同的類(class SignUpLauncher: NSObject, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout)和代碼來關閉這一觀點也是該類。

現在我想關閉該視圖時註冊成功。在我註冊的I類運行此:

let signUpLauncher = SignUpLauncher() 
    func handleClose(){ 
     signUpLauncher.handleClose() 
    } 

     FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: { (user, err) in 
      if let error = err { 
       print(error.localizedDescription) 
      } else { 

       guard let uid = user?.uid else{ 
        return 
       } 
       //Successfully authenticated user 
       print("Sucess") 

       let ref = FIRDatabase.database().reference(fromURL: "myURL.com/") 
       let usersRef = ref.child("Users").child(uid) 
       let values = ["name": name, "email": email] 
       usersRef.updateChildValues(values, withCompletionBlock: { (error, ref) in 

        if error != nil { 
         print(error) 
         return 
        } 

        print("Saved user successfully into DB") 
        self.handleClose() 

       }) 

      } 
     }) 

這是SignUpLauncherhandleClose()功能:

 func handleClose(){ 

     UIView.animate(withDuration: 0.5) { 
      self.closeButton.alpha = 0 

      if let window = UIApplication.shared.keyWindow{ 
       self.self.collectionView.frame = CGRect(x: 0, y: window.frame.height, width: self.collectionView.frame.width, height: self.collectionView.frame.height) 
       self.navBar.frame = CGRect(x: 0, y: window.frame.height, width: self.navBar.frame.width, height: 65) 
       self.closeButton.frame = CGRect(x: window.frame.width - 34 ,y: window.frame.height + 30,width: 18,height: 18) 
      } 
     } 

    } 

的問題是,什麼也沒有發生。我想,這與self有關,但我不知道究竟是什麼。

+0

你的問題並沒有多大意義。你聽起來像是試圖關閉一個集合視圖單元格。你不應該那樣做。集合視圖擁有並管理其單元格。如果這不是你的意思,那麼你需要更好地解釋。 –

+0

你說「我正在從SignupLauncher啓動註冊」。你是什​​麼意思「發射」?應用程序啓動。視圖被添加到超級視圖。視圖控制器被推送或呈現。目前還不清楚'Signup'和'SignupLauncher'是什麼類。 –

+0

爲了更好的理解:我使用UICollectionViewCell作爲構造做了一個自定義View('SignUp')。我不使用UICollectionViewController。 – Burksen

回答

0

您的代碼是沒有意義的。您不應該在集合視圖外使用集合視圖單元格。您創建一個新對象,並期望它指向當前視圖控制器上的一個按鈕。它不會。您應該將視圖控制器的IBAction方法放入視圖控制器中。

你需要走走停停的iOS應用程序設計的基本知識,閱讀起來。現在你越來越錯了,而你只會感到沮喪。