2016-07-05 1 views
0

j'ai fait ce qui suit: 1. Traîné UIView pour le placer dans le ruban ViewController Dragged UIView to place it in the ViewController ribbonComment ajouter un UIView créé dans le storyboard sous forme de pop-up dans Swift?

  1. créé une classe UIView personnalisée et a ajouté les points de vente à la «Modifier le profil Voir 'vue: champs

importation UIKit

classe EditProfileView: UIView {

let globalDataHandler = GlobalDataHandler.sharedInstance 

@IBOutlet weak var firstNameTextField: UITextField! 
@IBOutlet weak var lastNameTextField: UITextField! 
@IBOutlet weak var userNameTextField: UITextField! 
@IBOutlet weak var passwordTextField: UITextField! 
@IBOutlet weak var emailTextField: UITextField! 
@IBAction func saveEditButton(sender: AnyObject) { 
} 
@IBAction func cancelEditButton(sender: AnyObject) { 
} 

/* 
// Only override drawRect: if you perform custom drawing. 
// An empty implementation adversely affects performance during animation. 
override func drawRect(rect: CGRect) { 
    // Drawing code 
} 
*/ 

}

  1. Gave 'EditProfileView' classe comme classe personnalisée pour la 'Modifier le profil Voir' en vue Storyboard.

  2. créé un objet pour « EditProfileView » classe ProfileViewController et a ajouté le « Modifier le profil Voir » en vue de la vue principale après avoir cliqué sur le bouton modifier dans ProfileViewController.

classe ProfileViewController: UIViewController {

let profileView = EditProfileView() 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

@IBAction func editProfileButton(sender: AnyObject) { 
    profileView.firstNameTextField.text = "First Name" 
    profileView.lastNameTextField.text = "Last Name" 
    profileView.userNameTextField.text = "User Name" 
    profileView.emailTextField.text = "Email" 
    let testFrame : CGRect = CGRectMake(50,100,300,300) 
    profileView.frame = testFrame 
    self.view.addSubview(profileView) 
} 

}

Mais, le 'Modifier le profil Voir' vue ne semble pas ProfileViewController. S'il vous plaît aider.

+0

Pourquoi vous tout simplement pas de 'profileView' et IBOutlet de la vue que vous glisser dans le story-board en sélectionnant « Modifier le profil Affichage » dans le plan du document et de contrôle glisser dans votre 'ProfileViewController'? L'initialiser dans un code comme 'EditProfileView()' n'aura pas l'effet désiré car il y a un initialiseur surchargé qui configure vos sous-vues. – beyowulf

Répondre

0

Vous devez lier votre UIView et votre View (devrait être un UIViewController distinct) dans le Xib.

profileView = storyboard.instantiateViewControllerWithIdentifier("ProfileViewController") 

Vous devez avoir un UIPresentationController pour votre ProfileVC

class ProfilePresentationController : UIPresentationController { 
    override func frameOfPresentedViewInContainerView() -> CGRect { 
     return CGRect(x: (presentingViewController.view.frame.width/2.0) - 150.0, y: (presentingViewController.view.frame.height/2.0) - 100.0, width: 300.0, height: 200.0) 
    } 
} 

Votre EditProfileView doit mettre en œuvre le délégué suivant:

UIViewControllerTransitioningDelegate 

les propriétés suivantes de votre profileView doit également être réglé sur:

profileView.modalPresentationStyle = UIModalPresentationStyle.Custom 
profileView.transitioningDelegate = self 

Après cela, vous pouvez mettre en œuvre le délégué méthode requise

func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController, sourceViewController source: UIViewController) -> UIPresentationController? { 
     return ProfilePresentationController(presentedViewController: presented, presentingViewController: presenting) 
}